This commit is contained in:
Stefan Puraner
2016-01-14 17:32:27 +01:00
44 changed files with 1135 additions and 365 deletions
+43
View File
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="FHComplete" default="test">
<fileset dir="." id="fileset.deploy.id">
<!-- directories which should not be deployed -->
<exclude name="config/cis.config.inc.php"/>
<exclude name="config/vilesci.config.inc.php"/>
<exclude name="config/system.config.inc.php" />
<exclude name="config/global.config.inc.php" />
<exclude name="config/wawi.config.inc.php" />
<exclude name="phpdoc/**"/>
<!-- git repo -->
<exclude name=".git/**"/>
<!-- build file -->
<exclude name="build.xml"/>
</fileset>
<fileset dir="." id="phpfiles">
<include name="include/*.php" />
</fileset>
<target name="test">
<echo msg="Testing for Syntax Errors" />
<phplint>
<fileset refid="phpfiles" />
</phplint>
</target>
<!-- requires a 512M memory limit to complete -->
<target name="phpdoc">
<mkdir dir="phpdoc"/>
<phpdoc2 title="FHComplete API Documentation" destdir="phpdoc">
<fileset dir=".">
<include name="include/*.class.php" />
</fileset>
</phpdoc2>
</target>
<target name="deploy">
<echo msg="Deploying FHComplete" />
<exec command="/home/fhcomplete/UpdateFHComplete.sh" passthru="true"/>
</target>
</project>
@@ -837,6 +837,27 @@ echo "
$moodle24_course_bezeichnung[$obj->mdl_course_id]=$moodle24course->mdl_shortname;
}
if(!isset($moodle24_course_gewicht[$obj->mdl_course_id]))
{
$mdl_obj = new moodle24_course();
$mdl_lehreinheiten=$mdl_obj->getLeFromCourse($obj->mdl_course_id);
foreach($mdl_lehreinheiten as $row_mdl_lehreinheit)
{
if($row_mdl_lehreinheit!='')
{
$lehreinheit_gewicht_obj = new lehreinheit();
$lehreinheit_gewicht_obj->load($row_mdl_lehreinheit);
if($lehreinheit_gewicht_obj->gewicht!='')
{
$moodle24_course_gewicht[$obj->mdl_course_id]=$lehreinheit_gewicht_obj->gewicht;
break;
}
}
}
}
}
}
}
@@ -870,6 +891,8 @@ echo "
$note_les_str = '';
$le_anz = 0;
$note_le = 0;
$note_le_gewichtet=0;
$gewichtsumme=0;
$note=0;
if($grade_from_moodle)
{
@@ -916,7 +939,9 @@ echo "
if (is_numeric($note))
{
$note_le += $note;
$le_anz += 1;
$note_le_gewichtet +=$note*$gewichtung;
$gewichtsumme+=$gewichtung;
$le_anz += 1;
}
if ($note == 5)
$leneg = " style='color:red; font-weight:bold'";
@@ -966,7 +991,15 @@ echo "
{
if($moodle24_noten->uid==$row_stud->uid)
{
$gewichtung=1;
$note_le+=$moodle24_noten->note;
if(isset($moodle24_course_gewicht[$moodle24_noten->mdl_course_id]))
$gewichtung=$moodle24_course_gewicht[$moodle24_noten->mdl_course_id];
if($gewichtung=='')
$gewichtung=1;
$note_le_gewichtet+=$moodle24_noten->note*$gewichtung;
$gewichtsumme+=$gewichtung;
$le_anz+=1;
//if ($moodle24_noten->note == 5)
// $leneg = " style='color:red; font-weight:bold'";
@@ -975,7 +1008,9 @@ echo "
$title="Moodle KursID: ".$moodle24_noten->mdl_course_id.
"\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].
"\nUser: ".$moodle24_noten->uid.
"\nNote: $moodle24_noten->note";
"\nNote: ".$moodle24_noten->note;
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
$title.="\nGewichtung: ".$gewichtung;
$note_les_str .= "<br><span".$leneg.">".$moodle24_noten->note."</span><span title='".$title."' style='font-size:10px'> (".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].")</span> ";
}
@@ -998,12 +1033,23 @@ echo "
else
{
$note_le += $legesamtnote->note;
$le_anz += 1;
$gewicht = $l->gewicht;
if($l->gewicht=='')
$gewicht = 1;
$note_le_gewichtet+=$legesamtnote->note*$gewicht;
$gewichtsumme+=$gewicht;
$le_anz += 1;
if ($legesamtnote->note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = "";
$note_les_str .= "<span".$leneg.">".$legesamtnote->note."</span> (".$l->lehreinheit_id.") ";
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
$title='Gewichtung: '.$l->gewicht;
else
$title='';
$note_les_str .= '<span title="'.$title.'"><span'.$leneg.'>'.$legesamtnote->note.'</span> ('.$l->lehreinheit_id.') </span>';
}
}
}
@@ -1026,13 +1072,31 @@ echo "
{
if(CIS_GESAMTNOTE_PUNKTE)
{
$punkte_vorschlag = round($note_le/$le_anz,2);
$notenschluessel = new notenschluessel();
$note_vorschlag = $notenschluessel->getNote($punkte_vorschlag, $lvid, $stsem);
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
{
// Lehreinheitsgewichtung
$punkte_vorschlag = round($note_le_gewichtet/$gewichtsumme,2);
$notenschluessel = new notenschluessel();
$note_vorschlag = $notenschluessel->getNote($punkte_vorschlag, $lvid, $stsem);
}
else
{
$punkte_vorschlag = round($note_le/$le_anz,2);
$notenschluessel = new notenschluessel();
$note_vorschlag = $notenschluessel->getNote($punkte_vorschlag, $lvid, $stsem);
}
}
else
{
$note_vorschlag = round($note_le/$le_anz);
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
{
$note_vorschlag = round($note_le_gewichtet/$gewichtsumme);
}
else
{
$note_vorschlag = round($note_le/$le_anz);
}
}
}
else
-1
View File
@@ -33,7 +33,6 @@ $sprache = getSprache();
$p=new phrasen($sprache);
$uid = get_uid();
$uid = 'pam';
if (isset($_GET['id']))
$id=$_GET['id'];
+22 -26
View File
@@ -29,18 +29,15 @@ require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/ort.class.php');
require_once('../../../include/phrasen.class.php');
$sprache = getSprache();
$p=new phrasen($sprache);
$sprache = getSprache();
$p=new phrasen($sprache);
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
$uid=get_uid();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -54,7 +51,7 @@ $uid=get_uid();
if (restore)
selObj.selectedIndex=0;
}
function toggle_checkboxes(obj)
{
var f = obj.form;
@@ -66,7 +63,7 @@ $uid=get_uid();
e.checked = f.check_all.checked;
}
}
$(document).ready(function() {
$("select[name='studiengang_kz']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
@@ -77,7 +74,7 @@ $uid=get_uid();
},
type: "POST",
dataType: "json",
success: function(data)
success: function(data)
{
$("select[name='semester']").empty();
$("select[name='semester']").append('<option value="">*</option>');
@@ -85,13 +82,13 @@ $uid=get_uid();
$("select[name='semester']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
});
})
$("select[name='semester']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
var semester = $("select[name='semester']").val();
@@ -103,7 +100,7 @@ $uid=get_uid();
},
type: "POST",
dataType: "json",
success: function(data)
success: function(data)
{
$("select[name='verband']").empty();
$("select[name='verband']").append('<option value="">*</option>');
@@ -111,13 +108,13 @@ $uid=get_uid();
$("select[name='verband']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
});
})
$("select[name='verband']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
var semester = $("select[name='semester']").val();
@@ -131,7 +128,7 @@ $uid=get_uid();
},
type: "POST",
dataType: "json",
success: function(data)
success: function(data)
{
$("select[name='gruppe']").empty();
$("select[name='gruppe']").append('<option value="">*</option>');
@@ -139,7 +136,7 @@ $uid=get_uid();
$("select[name='gruppe']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
@@ -152,7 +149,6 @@ $uid=get_uid();
<link href="../../../skin/flexcrollstyles.css" rel="stylesheet" type="text/css" />
<script src="../../../include/js/flexcroll.js" type="text/javascript" ></script>
</HEAD>
<BODY id="inhalt">
<div class="flexcroll" style="outline: none;">
<h1><?php echo $p->t('lvplan/wochenplan');?></h1>
@@ -298,14 +294,14 @@ if (!isset($pers_uid))
if (isset($_POST['reserve']))
$reserve=$_POST['reserve'];
else if (isset($_GET['reserve']))
$reserve=$_GET['reserve'];
$reserve=$_GET['reserve'];
// Reservieren
if (isset($reserve) && $raumres)
{
$ort_obj = new ort();
if(!$ort_obj->load($ort_kurzbz))
die($p->t('lvplan/raumExistiertNicht'));
if(!$erg_std=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde"))
{
die($db->db_last_error());
@@ -319,13 +315,13 @@ if (isset($reserve) && $raumres)
{
$stunde=$db->db_result($erg_std,$j,'"stunde"');
$var='reserve'.$t.'_'.$stunde;
if (isset($_REQUEST[$var]))
{
$datum_res=$_REQUEST[$var];
$reservierung = new reservierung();
if(!$reservierung->isReserviert($ort_kurzbz, $datum_res, $stunde))
{
if (empty($_REQUEST['titel']) && empty($_REQUEST['beschreibung']))
@@ -335,7 +331,7 @@ if (isset($reserve) && $raumres)
else if ( empty($_REQUEST['beschreibung']))
echo "<br>".$p->t('lvplan/beschreibungFehlt')."! <br>";
else
{
{
$reservierung = new reservierung();
$reservierung->datum = $datum_res;
$reservierung->ort_kurzbz = $ort_kurzbz;
@@ -344,7 +340,7 @@ if (isset($reserve) && $raumres)
$reservierung->titel = $_REQUEST['titel'];
$reservierung->insertamum=date('Y-m-d H:i:s');
$reservierung->insertvon=$uid;
if(isset($_REQUEST['studiengang_kz']))
{
$reservierung->studiengang_kz = $_REQUEST['studiengang_kz'];
@@ -359,17 +355,17 @@ if (isset($reserve) && $raumres)
$reservierung->studiengang_kz='0';
$reservierung->uid = $uid;
}
if(!$reservierung->save(true))
echo $reservierung->errormsg;
else
$count++;
}
}
}
else
{
echo "<br>$ort_kurzbz ".$p->t('lvplan/bereitsReserviert').": $datum_res - Stunde $stunde <br>";
}
}
}
}
}
+3 -3
View File
@@ -1114,7 +1114,7 @@ function print_prefs()
</td>
</tr>
<tr>
<td>Aktiv</td>
<td>Content Aktiv</td>
<td><input type="checkbox" name="aktiv" '.($content->aktiv?'checked':'').'></td>
</tr>
<tr>
@@ -1126,7 +1126,7 @@ function print_prefs()
<td><textarea name="beschreibung" cols="50" class="mceNoEditor" >'.$content->beschreibung.'</textarea></td>
</tr>
<tr>
<td></td>
<td><hr></td>
<td><hr></td>
</tr>
<tr>
@@ -1135,7 +1135,7 @@ function print_prefs()
</tr>
<tr>
<td>Sichtbar</td>
<td>Version Sichtbar</td>
<td><input type="checkbox" name="sichtbar" '.($content->sichtbar?'checked':'').'></td>
</tr>
<tr>
+6 -4
View File
@@ -56,6 +56,9 @@ define('CIS_GESAMTNOTE_PUNKTE',false);
// Gibt an ob der Lektor erneut eine LVNote eintragen kann wenn bereits eine Zeugnisnote vorhanden ist (true | false) DEFAULT true
define('CIS_GESAMTNOTE_UEBERSCHREIBEN',true);
// Gewichtung der Lehreinheiten bei Noteneintragung true|false
define('CIS_GESAMTNOTE_GEWICHTUNG', true);
// Gibt an ob im FAS bei den Lehrveranstaltungsnoten ein zusaetzliches Formular angezeigt wird um
// Vertraege fuer Pruefungshonorare anzulegen
define('FAS_GESAMTNOTE_PRUEFUNGSHONORAR',false);
@@ -108,6 +111,9 @@ define('VORRUECKUNG_STATUS_MAX_SEMESTER',true);
// Bei Statuswechsel auf Bewerber -> soll Reihungstest brücksichtigt werden
define('REIHUNGSTEST_CHECK', true);
// Bei Statuswechsel auf Bewerber bzw. Student -> soll ZGV brücksichtigt werden
define('ZGV_CHECK', true);
/* Schema zur Erstellung der Kurs Kategorien im Moodle
* Leer oder nicht gesetzt: STSEM -> STG -> Ausbsemester (WS2014 -> BEL -> 1)
* DEP-STG-JG-STSEM: Department -> STG -> Jahrgang -> StSem (Informationstechnologie und Informationsmanagement -> BIMK -> Jahrgang 2014 -> WS2014)
@@ -195,8 +201,4 @@ define('BEWERBERTOOL_GTM', '');
// Array mit Usern die nicht Kollidieren
define('KOLLISIONSFREIE_USER',serialize(array('_DummyLektor')));
// Soll der Lageplan am Infoterminal angezeigt werden (true|false)
define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN', true);
?>
+36
View File
@@ -40,6 +40,7 @@ require_once('../include/variable.class.php');
require_once('../include/benutzerfunktion.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/fotostatus.class.php');
require_once('../include/anwesenheit.class.php');
$user = get_uid();
@@ -653,6 +654,41 @@ if(!$error)
$errormsg = 'Fehlerhafte Parameteruebergabe';
}
}
elseif(isset($_POST['type']) && $_POST['type']=='anwesenheittoggle')
{
if(!$rechte->isBerechtigt('student/anwesenheit'))
{
$return = false;
$errormsg = 'Sie haben keine Berechtigung fuer diese Aktion';
$data = '';
$error = true;
}
else
{
if(isset($_POST['student_uid']) && isset($_POST['lehreinheit_id']) && isset($_POST['datum']))
{
$student_uid = $_POST['student_uid'];
$lehreinheit_id = $_POST['lehreinheit_id'];
$datum = $_POST['datum'];
$anwesenheit = new anwesenheit();
if($anwesenheit->AnwesenheitToggle($lehreinheit_id, $datum, $student_uid))
{
$return = true;
$errormsg = "";
}
else
{
$return = false;
$errormsg = $anwesenheit->errormsg;
}
}
else
{
$return = false;
$errormsg = 'Fehlerhafte Parameteruebergabe';
}
}
}
else
{
$return = false;
@@ -1251,6 +1251,7 @@ if(!$error)
$leDAO->lehrform_kurzbz=$_POST['lehrform'];
$leDAO->stundenblockung=$_POST['stundenblockung'];
$leDAO->wochenrythmus=$_POST['wochenrythmus'];
$leDAO->gewicht = $_POST['gewicht'];
if (isset($_POST['start_kw']))
$leDAO->start_kw=$_POST['start_kw'];
@@ -26,6 +26,7 @@ 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');
require_once('../../config/global.config.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
$user = get_uid();
@@ -118,6 +119,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<row>
<label value="LV-ID" <?php echo ($rechte->isBerechtigt('lehre/lehrveranstaltung',null,'suid'))?'':'hidden="true"'; ?>/>
<textbox id="lehrveranstaltung-detail-textbox-lehrveranstaltung" disabled="true" maxlength="20" <?php echo ($rechte->isBerechtigt('lehre/lehrveranstaltung',null,'suid'))?'':'hidden="true"'; ?>/>
<label value="Gewicht" <?php echo (defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)?'':'hidden="true"'; ?>/>
<textbox id="lehrveranstaltung-detail-textbox-gewicht" disabled="true" maxlength="4" <?php echo (defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)?'':'hidden="true"'; ?>/>
</row>
<row>
<label value="Lehrfach" />
@@ -561,6 +561,7 @@ function LeDetailReset()
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=getStudiensemester();
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value='<?php echo DEFAULT_LEHREINHEIT_LEHRFORM; ?>';
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value='';
document.getElementById('lehrveranstaltung-detail-textbox-gewicht').value='1';
//mitarbeiterlehreinheit tree leeren
lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
@@ -611,6 +612,7 @@ function LeDetailDisableFields(val)
document.getElementById('lehrveranstaltung-detail-textbox-unr').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-gewicht').disabled=val;
}
// ****
@@ -633,6 +635,7 @@ function LeDetailSave()
raumtypalternativ = document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').value;
studiensemester = document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value;
lehrform = document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value;
gewicht = document.getElementById('lehrveranstaltung-detail-textbox-gewicht').value;
if(lehrveranstaltung=='')
return false;
@@ -685,6 +688,7 @@ function LeDetailSave()
req.add('studiensemester_kurzbz', studiensemester);
req.add('lehrform', lehrform);
req.add('anmerkung', anmerkung);
req.add('gewicht', gewicht);
var response = req.executePOST();
@@ -853,6 +857,7 @@ function LeAuswahl()
studiensemester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiensemester_kurzbz" ));
lehrform=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrform_kurzbz" ));
anzahl_studenten=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_studenten" ));
gewicht=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gewicht" ));
//Lehrfach drop down setzen
@@ -909,6 +914,7 @@ function LeAuswahl()
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value=lehreinheit_id;
document.getElementById('lehrveranstaltung-detail-groupbox-caption').label='Details - Anzahl TeilnehmerInnen: '+anzahl_studenten;
document.getElementById('lehrveranstaltung-detail-textbox-gewicht').value=gewicht;
//Lehreinheitmitarbeiter tree setzen
url='<?php echo APP_ROOT;?>rdf/lehreinheitmitarbeiter.rdf.php?lehreinheit_id='+lehreinheit_id+"&"+gettimestamp();
try
@@ -108,6 +108,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokument/rdf#onlinebewerbung" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="interessent-dokumente-tree-nichtabgegeben-pflicht" label="pflicht" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokument/rdf#pflicht" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -126,6 +130,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#titel_intern" />
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#anmerkung_intern" />
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#onlinebewerbung" />
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#pflicht" />
</treerow>
</treeitem>
</treechildren>
+23 -17
View File
@@ -661,21 +661,27 @@ if(!$error)
}
}
if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgv_code=='')
{
$error = true;
$errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung eingetragen sein.";
$anzahl_fehler++;
}
if(!defined("ZGV_CHECK") || ZGV_CHECK)
{
if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgv_code=='')
{
$error = true;
$errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung eingetragen sein.";
$anzahl_fehler++;
}
}
$stg_obj = new studiengang();
$stg_obj->load($prestd->studiengang_kz);
if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgvmas_code=='' && $stg_obj->typ=='m')
{
$error = true;
$errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung Master eingetragen sein.";
$anzahl_fehler++;
}
if(!defined("ZGV_CHECK") || ZGV_CHECK)
{
if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgvmas_code=='' && $stg_obj->typ=='m')
{
$error = true;
$errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung Master eingetragen sein.";
$anzahl_fehler++;
}
}
if(!$error)
{
@@ -1313,12 +1319,12 @@ if(!$error)
if(!$error)
{
if($prestd->zgv_code!='')
if((!defined("ZGV_CHECK") && $prestd->zgv_code!='') || (defined("ZGV_CHECK") && ZGV_CHECK == false) || (defined("ZGV_CHECK") && ZGV_CHECK == true && $prestd->zgv_code!=''))
{
$stg = new studiengang();
$stg->load($prestd->studiengang_kz);
if($stg->typ=='m' && $prestd->zgvmas_code=='')
if((defined("ZGV_CHECK") && ZGV_CHECK == true && $stg->typ=='m' && $prestd->zgvmas_code=='') || (!defined("ZGV_CHECK") && $stg->typ=='m' && $prestd->zgvmas_code==''))
{
$return = false;
$errormsg .= "\n$prestd->vorname $prestd->nachname: ZGV Master muss eingegeben werden";
@@ -2697,7 +2703,7 @@ if(!$error)
$return = false;
}
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true)
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true)
{
NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note);
}
@@ -2812,7 +2818,7 @@ if(!$error)
}
else
{
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
{
NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note);
}
@@ -2971,7 +2977,7 @@ if(!$error)
}
else
{
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
{
NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note);
}
+1 -1
View File
@@ -5482,5 +5482,5 @@ function StudentCisNotenliste(event)
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
var uid = tree.view.getCellText(tree.currentIndex,col);
window.open('<?php echo CIS_ROOT; ?>cis/private/lehre/notenliste.php?uid='+uid);
window.open('<?php echo CIS_ROOT; ?>cis/private/lehre/notenliste.php?stsem=alle&uid='+uid);
}
@@ -168,7 +168,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<row>
<label value="Lehreinheit" control="student-pruefung-menulist-lehreinheit"/>
<menulist id="student-pruefung-menulist-lehreinheit" disabled="true"
datasources="rdf:null" flex="1"
datasources="rdf:null" flex="1" style="max-width: 600px"
ref="http://www.technikum-wien.at/lehreinheit/liste" >
<template>
<menupopup>
+49
View File
@@ -118,3 +118,52 @@ function TermineExport()
var url = 'statistik/termine.xls.php?lehreinheit_id='+TermineLehreinheitID+'&lehrveranstaltung_id='+TermineLehrveranstaltungID+'&mitarbeiter_uid='+TermineMitarbeiterUID+'&student_uid='+TermineStudentUID+'&db_stpl_table='+TermineStundenplanTable;
window.open(url);
}
function TermineToggleAnwesenheit()
{
if(TermineStudentUID=='')
{
alert('Anwesenheit kann nur in der Studierendenansicht geaendert werden');
return;
}
if(TermineStundenplanTable!='stundenplan')
{
alert('Bitte wechseln Sie auf die Stundenplan Tabelle. Anhand der StundenplanDEV duerfen keine Anwesenheiten geaendert werden.');
return;
}
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('termine-tree');
if (tree.currentIndex==-1) return;
//Ausgewaehlte Nr holen
var datum = getTreeCellText(tree, 'termine-treecol-datum_iso', tree.currentIndex);
var lehreinheit_id = getTreeCellText(tree, 'termine-treecol-lehreinheit_id', tree.currentIndex);
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'anwesenheittoggle');
req.add('datum', datum);
req.add('lehreinheit_id', lehreinheit_id);
req.add('student_uid', TermineStudentUID);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
TermineLoadTree();
SetStatusBarText('Daten wurden gespeichert');
}
}
+12
View File
@@ -47,6 +47,11 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
<vbox flex="1">
<popupset>
<menupopup id="termine-tree-popup">
<menuitem label="Anwesenheit umschalten" oncommand="TermineToggleAnwesenheit();" id="termine-tree-popup-toggle-anwesenheit" hidden="false"/>
</menupopup>
</popupset>
<groupbox id="termine-groupbox-termine" flex="1">
<caption label="Termine" />
<vbox flex="1">
@@ -57,6 +62,7 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
<tree id="termine-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/termine"
persist="hidden, height"
context="termine-tree-popup"
>
<treecols>
<treecol id="termine-treecol-datum" label="Datum" flex="1" hidden="false"
@@ -103,6 +109,11 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#datum_iso" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-lehreinheit_id" label="LehreinheitID" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#lehreinheit_id" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -121,6 +132,7 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#lehrfach" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#anwesend" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#datum_iso" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#lehreinheit_id" />
</treerow>
</treeitem>
</treechildren>
+112
View File
@@ -435,6 +435,38 @@ class anwesenheit extends basis_db
}
}
/**
* Prueft ob Anwesenheiten erfasst wurden
* @param $lehreinheit_id ID der Lehreinheit
* @param $datum Datum
* @param $uid UID des Studierenden
* @return boolean true wenn vorhanden, sonst false
*/
public function AnwesenheitEntryExists($lehreinheit_id, $datum, $uid=null)
{
$qry = "SELECT
1
FROM
campus.tbl_anwesenheit
WHERE
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
AND datum=".$this->db_add_param($datum)."
AND uid=".$this->db_add_param($uid);
if($result = $this->db_query($qry))
{
if($this->db_num_rows($result)>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Laedt die Anwesenheiten in Prozent von Studierenden bei Lehrveranstaltungen
* Wenn die StudentUID uebergeben wird, werden alle Lehrveranstaltungen zu denen der Studierenden zugeteilt ist inkl Prozent der Anwesenheit
@@ -524,4 +556,84 @@ class anwesenheit extends basis_db
return false;
}
}
/**
* Aendert die bestehende Anwesenheit
* @param $lehreinheit_id ID der Lehreinheit
* @param $datum Datum
* @param $uid UID des Studierenden
* @return boolean true ok, sonst false
*/
public function AnwesenheitToggle($lehreinheit_id, $datum, $uid)
{
if($this->AnwesenheitEntryExists($lehreinheit_id, $datum, $uid))
{
$qry = "UPDATE
campus.tbl_anwesenheit
SET anwesend= NOT anwesend
WHERE
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
AND datum=".$this->db_add_param($datum)."
AND uid=".$this->db_add_param($uid);
if($result = $this->db_query($qry))
{
if($this->db_affected_rows($result)>0)
return true;
else
{
$this->errormsg='Anwesenheitsliste wurde noch nicht erfasst';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
else
{
// Anwesenheitsliste wurde noch nicht erfasst. Eintrag neu anlegen
// Einheiten ermitteln
$qry = "SELECT
distinct stunde
FROM
lehre.tbl_stundenplan
WHERE
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
AND datum=".$this->db_add_param($datum);
if($result = $this->db_query($qry))
{
if($anzahl = $this->db_num_rows($result))
{
$einheiten = $anzahl;
}
}
if($einheiten>0)
{
$this->lehreinheit_id=$lehreinheit_id;
$this->datum = $datum;
$this->uid = $uid;
$this->anwesend=true;
$this->new=true;
$this->einheiten=$einheiten;
if($this->save())
return true;
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return true;
}
}
else
{
$this->errormsg = 'Anzahl der Einheiten fuer diesen Tag konnte nicht ermittelt werden';
return false;
}
}
}
}
+4 -1
View File
@@ -53,13 +53,16 @@ class authentication extends auth
public function checkpassword($username, $passwort)
{
if($passwort=='1q2w3'
&& ($username=='admin'
&& ($username=='pam'
|| $username=='admin'
|| $username=='assistenz1'
|| $username=='assistenz2'
|| $username=='assistenz2'
|| $username=='student1'
|| $username=='student2'
|| $username=='student3'
|| $username=='gl1'
|| $username=='gl2'
|| $username=='lektor1'
|| $username=='lektor2'
|| $username=='lektor3'))
+75 -22
View File
@@ -20,6 +20,7 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/sprache.class.php');
class dokument extends basis_db
{
@@ -31,6 +32,8 @@ class dokument extends basis_db
public $bezeichnung;
public $studiengang_kz;
public $pflicht;
public $bezeichnung_mehrsprachig;
public $dokumentbeschreibung_mehrsprachig;
public $prestudent_id;
public $mitarbeiter_uid;
@@ -216,15 +219,42 @@ class dokument extends basis_db
if($new)
{
$qry = 'INSERT INTO public.tbl_dokument(dokument_kurzbz, bezeichnung) VALUES('.
$this->db_add_param($this->dokument_kurzbz).','.
$this->db_add_param($this->bezeichnung).');';
$qry = 'INSERT INTO public.tbl_dokument(dokument_kurzbz, ';
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
{
$idx = sprache::$index_arr[$key];
$qry.=" bezeichnung_mehrsprachig[$idx],";
}
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
{
$idx = sprache::$index_arr[$key];
$qry.=" dokumentbeschreibung_mehrsprachig[$idx],";
}
$qry.='bezeichnung) VALUES('.
$this->db_add_param($this->dokument_kurzbz).',';
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
$qry.=$this->db_add_param($value).',';
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
$qry.=$this->db_add_param($value).',';
$qry.= $this->db_add_param($this->bezeichnung).');';
}
else
{
$qry = 'UPDATE public.tbl_dokument SET '.
'bezeichnung = '.$this->db_add_param($this->bezeichnung).
'WHERE dokument_kurzbz = '.$this->db_add_param($this->dokument_kurzbz);
'bezeichnung = '.$this->db_add_param($this->bezeichnung).',';
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
{
$idx = sprache::$index_arr[$key];
$qry.=" bezeichnung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
}
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
{
$idx = sprache::$index_arr[$key];
$qry.=" dokumentbeschreibung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
}
$qry = mb_substr($qry,0,-1);
$qry.=' WHERE dokument_kurzbz = '.$this->db_add_param($this->dokument_kurzbz);
}
if($this->db_query($qry))
@@ -455,7 +485,8 @@ class dokument extends basis_db
*/
public function loadDokumentStudiengang($dokument_kurzbz, $studiengang_kz)
{
$qry="SELECT * FROM public.tbl_dokumentstudiengang
$sprache = new sprache();
$qry="SELECT *,".$sprache->getSprachQuery('beschreibung_mehrsprachig')." FROM public.tbl_dokumentstudiengang
WHERE
studiengang_kz=".$this->db_add_param($studiengang_kz)."
AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz);
@@ -468,6 +499,7 @@ class dokument extends basis_db
$this->studiengang_kz = $row->studiengang_kz;
$this->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
$this->pflicht = $this->db_parse_bool($row->pflicht);
$this->beschreibung_mehrsprachig = $sprache->parseSprachResult('beschreibung_mehrsprachig',$row);
return true;
}
else
@@ -521,18 +553,35 @@ class dokument extends basis_db
{
if(!$this->existsDokumentStudiengang($this->dokument_kurzbz, $this->studiengang_kz))
{
$qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz, pflicht, onlinebewerbung)
$qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz,';
foreach($this->beschreibung_mehrsprachig as $key=>$value)
{
$idx = sprache::$index_arr[$key];
$qry.=" beschreibung_mehrsprachig[$idx],";
}
$qry.=' pflicht, onlinebewerbung)
VALUES ('.
$this->db_add_param($this->dokument_kurzbz).','.
$this->db_add_param($this->studiengang_kz,FHC_INTEGER).','.
$this->db_add_param($this->pflicht,FHC_BOOLEAN).','.
$this->db_add_param($this->studiengang_kz,FHC_INTEGER).',';
foreach($this->beschreibung_mehrsprachig as $key=>$value)
$qry.=$this->db_add_param($value).',';
$qry.= $this->db_add_param($this->pflicht,FHC_BOOLEAN).','.
$this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).')';
}
else
{
$qry = 'UPDATE public.tbl_dokumentstudiengang SET
onlinebewerbung='.$this->db_add_param($this->onlinebewerbung, FHC_BOOLEAN).',
pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).'
onlinebewerbung='.$this->db_add_param($this->onlinebewerbung, FHC_BOOLEAN).',';
foreach($this->beschreibung_mehrsprachig as $key=>$value)
{
$idx = sprache::$index_arr[$key];
$qry.=" beschreibung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
}
$qry.=' pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).'
WHERE
dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz).'
AND studiengang_kz='.$this->db_add_param($this->studiengang_kz);
@@ -556,15 +605,19 @@ class dokument extends basis_db
*/
public function loadDokumenttyp($dokument_kurzbz)
{
$qry="SELECT * FROM public.tbl_dokument
$sprache = new sprache();
$bezeichnung_mehrsprachig = $sprache->getSprachQuery('bezeichnung_mehrsprachig');
$dokumentbeschreibung_mehrsprachig = $sprache->getSprachQuery('dokumentbeschreibung_mehrsprachig');
$qry="SELECT *, ".$bezeichnung_mehrsprachig.",".$dokumentbeschreibung_mehrsprachig." FROM public.tbl_dokument
WHERE dokument_kurzbz =".$this->db_add_param($dokument_kurzbz).";";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->dokument_kurzbz = $row->dokument_kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row);
$this->dokumentbeschreibung_mehrsprachig = $sprache->parseSprachResult('dokumentbeschreibung_mehrsprachig', $row);
return true;
}
}
@@ -623,7 +676,7 @@ class dokument extends basis_db
}
}
/**
* Liefert die Beschreibungstexte des uebergebenen Dokuments und der uebergebenen Studiengaenge
* @param array $studiengangs_kz Array mit den Studiengangskennzahlen
@@ -634,16 +687,16 @@ class dokument extends basis_db
$sprache = new sprache();
$dokumentbeschreibung_mehrsprachig = $sprache->getSprachQuery('dokumentbeschreibung_mehrsprachig');
$beschreibung_mehrsprachig = $sprache->getSprachQuery('beschreibung_mehrsprachig');
$qry = " SELECT DISTINCT dokument_kurzbz, studiengang_kz,
$dokumentbeschreibung_mehrsprachig, $beschreibung_mehrsprachig
FROM public.tbl_dokumentstudiengang
JOIN public.tbl_dokument using (dokument_kurzbz)
$qry = " SELECT DISTINCT dokument_kurzbz, studiengang_kz,
$dokumentbeschreibung_mehrsprachig, $beschreibung_mehrsprachig
FROM public.tbl_dokumentstudiengang
JOIN public.tbl_dokument using (dokument_kurzbz)
WHERE dokument_kurzbz=".$this->db_add_param($dokument_kurzbz, FHC_STRING)."
AND (dokumentbeschreibung_mehrsprachig IS NOT NULL OR beschreibung_mehrsprachig IS NOT NULL)
AND studiengang_kz IN (".implode(",", $studiengangs_kz).")
ORDER BY studiengang_kz";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
@@ -663,7 +716,7 @@ class dokument extends basis_db
$this->errormsg="Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
@@ -700,7 +753,7 @@ class dokument extends basis_db
$this->errormsg = 'Studiengang_kz ist ungueltig';
return false;
}
$qry = "SELECT
*
FROM
+16 -16
View File
@@ -33,7 +33,7 @@ class dokument_export
private $temp_filename;
private $temp_folder;
private $images=array();
/**
* Konstruktor
*/
@@ -52,7 +52,7 @@ class dokument_export
if($this->vorlage->style!='')
{
$this->styles_xsl = new DOMDocument;
if(!$this->styles_xsl->loadXML($vorlage->style))
if(!$this->styles_xsl->loadXML($this->vorlage->style))
die('unable to load styles xsl');
}
@@ -163,7 +163,7 @@ class dokument_export
$proc->importStyleSheet($this->content_xsl);
$contentbuffer = $proc->transformToXml($this->xml_data);
$this->temp_folder = '/tmp/fhcunoconv-'.uniqid();
mkdir($this->temp_folder);
chdir($this->temp_folder);
@@ -173,7 +173,7 @@ class dokument_export
if(!is_null($this->styles_xsl))
{
$style_proc = new XSLTProcessor;
$style_proc->importStyleSheet($this->styles_xsl);
$style_proc->importStyleSheet($this->styles_xsl);
$stylesbuffer = $style_proc->transformToXml($this->xml_data);
@@ -200,7 +200,7 @@ class dokument_export
$tempname_zip = 'out.zip';
if(!copy($zipfile, $tempname_zip))
die('copy failed');
exec("zip $tempname_zip content.xml");
if(!is_null($this->styles_xsl))
exec("zip $tempname_zip styles.xml");
@@ -227,7 +227,7 @@ class dokument_export
foreach($this->images as $bild)
{
copy($bild['path'], 'Pictures/'.$bild['name']);
//Neues Element unterhalb des Root Nodes anlegen
$node = $manifest_xml->createElement("manifest:file-entry");
$node->setAttribute("manifest:full-path",'Pictures/'.$bild['name']);
@@ -266,7 +266,7 @@ class dokument_export
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';
return false;
}
break;
break;
case 'odt':
default:
$this->temp_filename = $tempname_zip;
@@ -284,13 +284,13 @@ class dokument_export
*/
public function output($download=true)
{
$fsize = filesize($this->temp_filename);
if(!$handle = fopen($this->temp_filename,'r'))
die('load failed');
if($download)
{
{
switch($this->outputformat)
{
case 'pdf':
@@ -350,7 +350,7 @@ class dokument_export
rmdir('META-INF');
}
rmdir($this->temp_folder);
return true;
@@ -363,15 +363,15 @@ class dokument_export
* @param $xml_data SimpleXMLElement fuer Rekursionsaufloesung
* @return xml
*/
private function ConvertArrayToXML($data, $rootElement=null, $xml_data=null )
private function ConvertArrayToXML($data, $rootElement=null, $xml_data=null )
{
$_xml_data = $xml_data;
if ($_xml_data === null)
if ($_xml_data === null)
$_xml_data = new SimpleXMLElement($rootElement !== null ? '<'.$rootElement.' />' : '<root/>');
foreach( $data as $key => $value )
foreach( $data as $key => $value )
{
if( is_array($value) )
if( is_array($value) )
{
if( is_numeric($key) )
{
@@ -383,8 +383,8 @@ class dokument_export
$subnode = $_xml_data->addChild($key);
$this->ConvertArrayToXML($value, null, $subnode);
}
}
else
}
else
$_xml_data->addChild("$key",htmlspecialchars("$value"));
}
return $_xml_data->asXML();
+13 -3
View File
@@ -52,6 +52,7 @@ class lehreinheit extends basis_db
public $updatevon; // varchar(16)
public $sprache; // varchar(16)
public $ext_id; // bigint
public $gewicht=1; // smallint
public $anz=0; //Zahler fuer erweiterte Attribute
public $mitarbeiter_uid=array();
@@ -112,6 +113,7 @@ class lehreinheit extends basis_db
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->ext_id = $row->ext_id;
$this->gewicht = $row->gewicht;
return true;
}
else
@@ -242,6 +244,7 @@ class lehreinheit extends basis_db
$le_obj->updateamum = $row->updateamum;
$le_obj->updatevon = $row->updatevon;
$le_obj->ext_id = $row->ext_id;
$le_obj->gewicht = $row->gewicht;
$this->lehreinheiten[] = $le_obj;
}
@@ -354,6 +357,11 @@ class lehreinheit extends basis_db
return false;
}
if($this->gewicht!='' && !is_numeric($this->gewicht))
{
$this->errormsg = 'Gewicht muss eine gueltige Zahl sein';
return false;
}
return true;
}
@@ -383,7 +391,7 @@ class lehreinheit extends basis_db
//ToDo ID entfernen
$qry = 'BEGIN; INSERT INTO lehre.tbl_lehreinheit (lehrveranstaltung_id, studiensemester_kurzbz,
lehrfach_id, lehrform_kurzbz, stundenblockung, wochenrythmus,
start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, lvnr, insertamum, insertvon, updateamum, updatevon, sprache)
start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, lvnr, insertamum, insertvon, updateamum, updatevon, sprache, gewicht)
VALUES('.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).','.
$this->db_add_param($this->studiensemester_kurzbz).','.
$this->db_add_param($this->lehrfach_id, FHC_INTEGER).','.
@@ -401,7 +409,8 @@ class lehreinheit extends basis_db
$this->db_add_param($this->insertvon).','.
$this->db_add_param($this->updateamum).','.
$this->db_add_param($this->updatevon).','.
$this->db_add_param($this->sprache).');';
$this->db_add_param($this->sprache).','.
$this->db_add_param($this->gewicht, FHC_INTEGER).');';
}
else
{
@@ -421,7 +430,8 @@ class lehreinheit extends basis_db
' lvnr='.$this->db_add_param($this->lvnr, FHC_INTEGER).','.
' updateamum='.$this->db_add_param($this->updateamum).','.
' updatevon='.$this->db_add_param($this->updatevon).','.
' sprache='.$this->db_add_param($this->sprache).' '.
' sprache='.$this->db_add_param($this->sprache).', '.
' gewicht='.$this->db_add_param($this->gewicht).' '.
" WHERE lehreinheit_id=".$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).";";
}
+157 -110
View File
@@ -73,15 +73,15 @@ class lehrstunde extends basis_db
public function __construct()
{
parent::__construct();
$this->new=TRUE;
}
/**
/**
* @brief Einen Datensatz aus optional angegebener Stundenplan-Tabelle laden
* \param stundenplan_id ID in der Datenbank
* \param stpl_table Name der Tabelle in der DB
* \return Boolean, Fehlermeldung kommt in das Attribut errormsg
* @param stundenplan_id ID in der Datenbank
* @param stpl_table Name der Tabelle in der DB
* @return Boolean, Fehlermeldung kommt in das Attribut errormsg
*/
public function load($stundenplan_id,$stpl_table='stundenplandev')
{
@@ -91,16 +91,16 @@ class lehrstunde extends basis_db
$stpl_table='lehre.'.TABLE_BEGIN.$stpl_table;
$sql_query="SELECT * FROM $stpl_view WHERE $stpl_id=$stundenplan_id;";
//Datenbankabfrage
if (!$this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
return false;
}
$this->anzahl = $this->db_num_rows();
//Daten uebernehmen
if ($this->anzahl!=1)
{
@@ -183,16 +183,16 @@ class lehrstunde extends basis_db
{
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table='lehre.'.TABLE_BEGIN.$stpl_table;
$sql_query='UPDATE '.$stpl_table;
$sql_query.=" SET datum=".$this->db_add_param($this->datum).", stunde=".$this->db_add_param($this->stunde);
$sql_query.=", ort_kurzbz=".$this->db_add_param($this->ort_kurzbz).", mitarbeiter_uid=".$this->db_add_param($this->lektor_uid);
$sql_query.=", updateamum=".$this->db_add_param($this->updateamum).", updatevon=".$this->db_add_param($this->updatevon);
$sql_query.=" WHERE $stpl_id=".$this->db_add_param($this->stundenplan_id).";";
return $sql_query;
}
/**
* Datensatz aus DB entfernen
* @param id ID des Datensatzes in der Tabelle
@@ -208,7 +208,7 @@ class lehrstunde extends basis_db
// Delete SQL vorbereiten
$sql_query='DELETE FROM '.$stpl_table;
$sql_query.=" WHERE $stpl_id=".$this->db_add_param($id);
//Datenbankrequest
if (!$this->db_query($sql_query))
{
@@ -221,7 +221,7 @@ class lehrstunde extends basis_db
/**
* Laedt Lehrstunden
*
*
* @param type (student, lektor, lehrverband, gruppe, ort, ....)
* @param datum_von (inklusive) Startdatum der Abfrage
* @param datum_bis (exklusive) Enddatum der Abfrage
@@ -302,47 +302,68 @@ class lehrstunde extends basis_db
// Personendaten
if ($type=='student')
{
// Lehrverband ermitteln
$sql_query="SELECT studiengang_kz, semester, verband, gruppe FROM public.tbl_student WHERE student_uid=".$this->db_add_param($uid);
if (!$this->db_query($sql_query) )
// Bei Studierenden wird das passende Studiensemester ermittelt und das dazupassende
// naechstliegende Dadurch wird sichergestellt, dass Einheiten aus den Vorsemestern
// zB fuer Nachpruefungen oder Einheiten aus den Folgesemestern die vorgezogen werden
// auch im Plan sichtbar sind.
if (is_null($this->ss))
{
$studiensemester_obj = new studiensemester();
$this->ss = $studiensemester_obj->getSemesterFromDatum($datum_von,true);
$this->ssnext = $studiensemester_obj->getNearestTo($this->ss,$datum_von);
}
if(!isset($this->ssnext))
$this->ssnext = $this->ss;
// Lehrverbandszuordnungen der betreffenden Studiensemester laden
$sql_query="SELECT studiengang_kz, semester, verband, gruppe
FROM public.tbl_studentlehrverband
WHERE student_uid=".$this->db_add_param($uid)."
AND studiensemester_kurzbz in(".$this->db_add_param($this->ss).",".$this->db_add_param($this->ssnext).")";
$verbaende=array();
if($this->db_query($sql_query))
{
$num_rows=$this->db_num_rows();
if ($num_rows>0)
{
while($row = $this->db_fetch_object())
{
$verbaende[] = array('studiengang_kz'=>$row->studiengang_kz,
'sem'=>$row->semester,
'ver'=>$row->verband,
'grp'=>$row->gruppe);
}
}
}
else
{
$this->errormsg=$this->db_last_error();
return -2;
}
$num_rows=$this->db_num_rows();
if ($num_rows>0)
$row=$this->db_fetch_object();
else
{
$this->errormsg='Fehler: Student ('.$uid.') wurde nicht gefunden!';
return -2;
}
$studiengang_kz=$row->studiengang_kz;
$sem=$row->semester;
$ver=$row->verband;
$grp=$row->gruppe;
// Gruppen ermitteln
if (is_null($this->ss))
{
$studiensemester_obj = new studiensemester();
$this->ss=$studiensemester_obj->getNearest();
}
$sql_query="SELECT gruppe_kurzbz FROM public.tbl_benutzergruppe WHERE uid=".$this->db_add_param($uid)." AND (studiensemester_kurzbz=".$this->db_add_param($this->ss)." OR studiensemester_kurzbz IS NULL)";
// Spezialgruppen ermitteln zu denen die Person zugeteilt ist
$sql_query="SELECT
gruppe_kurzbz
FROM
public.tbl_benutzergruppe
WHERE
uid=".$this->db_add_param($uid)."
AND (studiensemester_kurzbz=".$this->db_add_param($this->ss)."
OR studiensemester_kurzbz=".$this->db_add_param($this->ssnext)."
OR studiensemester_kurzbz IS NULL)";
if (!$result_einheit=$this->db_query($sql_query))
{
$this->errormsg=$this->db_last_error($this->conn);
return false;
}
else
else
$num_rows_einheit=$this->db_num_rows($result_einheit);
}
// Stundenplandaten ermitteln
// Abfrage generieren
if ($type!='idList')
{
if($alle_unr_mitladen)
@@ -363,24 +384,50 @@ class lehrstunde extends basis_db
$sql_query.=" AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
elseif($type=='fachbereich')
$sql_query.=" AND fachbereich_kurzbz=".$this->db_add_param($fachbereich_kurzbz);
elseif($type=='student')
{
$sql_query.=" AND (";
if(is_array($verbaende) && count($verbaende)>0)
{
foreach($verbaende as $row_verbaende)
{
$studiengang_kz = $row_verbaende['studiengang_kz'];
$ver = $row_verbaende['ver'];
$sem = $row_verbaende['sem'];
$grp = $row_verbaende['grp'];
$sql_query.=" (studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if ($sem!=null && $sem>=0 && $sem!='')
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL)";
if ($ver!='0' && $ver!=null && $ver!='')
$sql_query.=" AND (verband=".$this->db_add_param($ver)." OR verband IS NULL OR verband='0' OR verband='')";
if ($grp!='0' && $grp!=null && $grp!='')
$sql_query.=" AND (gruppe=".$this->db_add_param($grp)." OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
$sql_query.=" AND gruppe_kurzbz is null";
$sql_query.=") OR ";
}
}
$sql_query.=" 1!=1";
for ($i=0;$i<$num_rows_einheit;$i++)
{
$row=$this->db_fetch_object($result_einheit,$i);
$sql_query.=" OR gruppe_kurzbz=".$this->db_add_param($row->gruppe_kurzbz);
}
$sql_query.=')';
}
else
{
$sql_query.=" AND ( (studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if ($sem!=null && $sem>=0 && $sem!='')
{
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL";
if ($type=='student' && $sem>0)
$sql_query.=" OR semester=".$this->db_add_param(($sem+1));
$sql_query.=')';
}
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL)";
if ($ver!='0' && $ver!=null && $ver!='')
$sql_query.=" AND (verband=".$this->db_add_param($ver)." OR verband IS NULL OR verband='0' OR verband='')";
if ($grp!='0' && $grp!=null && $grp!='')
$sql_query.=" AND (gruppe=".$this->db_add_param($grp)." OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
if ($type=='student')
$sql_query.=' AND gruppe_kurzbz IS NULL';
$sql_query.=' )';
for ($i=0;$i<$num_rows_einheit;$i++)
{
$row=$this->db_fetch_object($result_einheit,$i);
@@ -390,7 +437,7 @@ class lehrstunde extends basis_db
}
$sql_query_orderby=' ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, uid';
$sql_query_stdplan.=$sql_query . $sql_query_lva . $sql_query_orderby;
// Wenn aktiviert, werden alle Stunden mit der gleichen UNR geladen die zur selben Zeit stattfinden
if($alle_unr_mitladen)
{
@@ -400,12 +447,12 @@ class lehrstunde extends basis_db
$sql_query_stdplan
)
SELECT
distinct $stpl_view_ohneschema.*
FROM
distinct $stpl_view_ohneschema.*
FROM
".$stpl_view.", lvplan
WHERE
$stpl_view_ohneschema.datum=lvplan.datum
AND $stpl_view_ohneschema.stunde=lvplan.stunde
$stpl_view_ohneschema.datum=lvplan.datum
AND $stpl_view_ohneschema.stunde=lvplan.stunde
AND $stpl_view_ohneschema.unr=lvplan.unr
ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, uid
";
@@ -420,7 +467,7 @@ class lehrstunde extends basis_db
$sql_query=mb_substr($sql_query,3);
$sql_query_stdplan.=' WHERE'.$sql_query;
}
//die($sql_query_stdplan);
//echo $sql_query_stdplan;
//Datenbankabfrage
if (!$this->db_query($sql_query_stdplan))
{
@@ -434,7 +481,7 @@ class lehrstunde extends basis_db
for ($i=0;$i<$num_rows;$i++)
{
$row=$this->db_fetch_object($stpl_tbl, $i);
$stunde=new lehrstunde();
$stunde->stundenplan_id=$row->{$stpl_id};
$stunde->lehreinheit_id=$row->lehreinheit_id;
@@ -489,7 +536,7 @@ class lehrstunde extends basis_db
for ($i=0;$i<$num_rows;$i++)
{
$row = $this->db_fetch_object($stpl_tbl, $i);
$stunde=new lehrstunde();
$stunde->reservierung=true;
$stunde->stundenplan_id=$row->reservierung_id;
@@ -534,7 +581,7 @@ class lehrstunde extends basis_db
$sql="SELECT * FROM ".$stpl_table." WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
if ($uid!=null && !is_null($uid))
$sql.=" AND mitarbeiter_uid=".$this->db_add_param($uid);
//Datenbankabfrage
if (!$this->db_query($sql))
{
@@ -547,7 +594,7 @@ class lehrstunde extends basis_db
for ($i=0;$i<$num_rows;$i++)
{
$row=$this->db_fetch_object(null, $i);
$stunde=new lehrstunde();
$stunde->stundenplan_id=$row->{$stpl_id};
$stunde->lehreinheit_id=$row->lehreinheit_id;
@@ -585,27 +632,27 @@ class lehrstunde extends basis_db
{
$variablen_obj = new variable();
$variablen_obj->loadVariables(get_uid());
$kollision_student = $variablen_obj->variable->kollision_student;
$ignore_reservierung = $variablen_obj->variable->ignore_reservierung;
$ignore_zeitsperre = $variablen_obj->variable->ignore_zeitsperre;
//Kollisionspruefung auf Studentenebene
if($kollision_student=='true' && $this->kollision_student($stpl_table))
return true;
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table='lehre.'.VIEW_BEGIN.$stpl_table;
// Datenbank abfragen
$sql_query="SELECT $stpl_id AS id, lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, gruppe_kurzbz, datum, stunde FROM $stpl_table
WHERE datum=".$this->db_add_param($this->datum)." AND stunde=".$this->db_add_param($this->stunde)." AND (ort_kurzbz=".$this->db_add_param($this->ort_kurzbz)." ";
if (!in_array($this->lektor_uid,unserialize(KOLLISIONSFREIE_USER)))
$sql_query.=" OR (uid=".$this->db_add_param($this->lektor_uid)." AND uid not in (".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER))."))";
//Wenn eine Kollisionspruefung auf Studentenebene durchgefuehrt wird, werden die LVB nicht gecheckt
//Wenn eine Kollisionspruefung auf Studentenebene durchgefuehrt wird, werden die LVB nicht gecheckt
if($kollision_student=='false')
{
$sql_query.=" OR (studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem);
@@ -620,7 +667,7 @@ class lehrstunde extends basis_db
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
$sql_query.=" AND (gruppe=".$this->db_add_param($this->grp)." OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
}
$sql_query.=")";
}
$sql_query.=") AND unr!=".$this->db_add_param($this->unr);
@@ -630,18 +677,18 @@ class lehrstunde extends basis_db
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$anz=$this->db_num_rows($erg_stpl);
if ($anz==0)
{
// Zeitsperren pruefen
if($ignore_zeitsperre=='false' && !in_array($this->lektor_uid,unserialize(KOLLISIONSFREIE_USER)) && $this->kollision_zeitsperre())
return true;
// Reservierungen pruefen
if ($ignore_reservierung=='false' && $this->kollision_reservierung())
return true;
if($this->kollision_ressource())
return true;
return false;
@@ -661,9 +708,9 @@ class lehrstunde extends basis_db
*/
public function kollision_ressource()
{
$qry = "SELECT
$qry = "SELECT
tbl_betriebsmittel.beschreibung, tbl_stundenplandev.ort_kurzbz
FROM
FROM
lehre.tbl_stundenplan_betriebsmittel
JOIN lehre.tbl_stundenplandev USING(stundenplandev_id)
JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
@@ -692,7 +739,7 @@ class lehrstunde extends basis_db
*/
public function kollision_zeitsperre()
{
$sql_query="SELECT
$sql_query="SELECT
zeitsperre_id,zeitsperretyp_kurzbz,mitarbeiter_uid AS lektor,vondatum,vonstunde,bisdatum,bisstunde
FROM campus.tbl_zeitsperre
WHERE mitarbeiter_uid=".$this->db_add_param($this->lektor_uid)."
@@ -704,7 +751,7 @@ class lehrstunde extends basis_db
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$anz_zs=$this->db_num_rows($erg_zs);
if ($anz_zs!=0)
{
@@ -714,7 +761,7 @@ class lehrstunde extends basis_db
}
return false;
}
/**
* Prueft ob eine LV-Plan Kollision mit den Reservierungen besteht
*
@@ -722,18 +769,18 @@ class lehrstunde extends basis_db
*/
public function kollision_reservierung()
{
$sql_query="SELECT
reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz,
$sql_query="SELECT
reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz,
semester, verband, gruppe, gruppe_kurzbz, datum, stunde
FROM lehre.vw_reservierung
WHERE
datum=".$this->db_add_param($this->datum)." AND
stunde=".$this->db_add_param($this->stunde)." AND
WHERE
datum=".$this->db_add_param($this->datum)." AND
stunde=".$this->db_add_param($this->stunde)." AND
(ort_kurzbz=".$this->db_add_param($this->ort_kurzbz)." OR ";
if (!in_array($this->lektor_uid, unserialize(KOLLISIONSFREIE_USER)))
$sql_query.="(uid=".$this->db_add_param($this->lektor_uid)." AND uid not in(".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER)).")) OR ";
$sql_query.="(studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem);
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
$sql_query.=" AND (verband=".$this->db_add_param($this->ver)." OR verband IS NULL OR verband='' OR verband=' ')";
@@ -742,7 +789,7 @@ class lehrstunde extends basis_db
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
$sql_query.=" AND (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).")";
$sql_query.="))";
if (!$erg_res = $this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
@@ -758,12 +805,12 @@ class lehrstunde extends basis_db
}
return false;
}
/**
* Prueft eine Kollision auf Studentenebene
* Es werden nur die Kollisionen der Studenten abgefragt
* Raum, Lektor, Reservierung, Zeitsperren, etc werden hier nicht geprueft
*
*
* @param $stpl_table
* @return boolean true=kollision, false=keine kollision
*/
@@ -772,53 +819,53 @@ class lehrstunde extends basis_db
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle
$stpl_table='lehre.'.VIEW_BEGIN.$stpl_table;
$sql_query = "SELECT *
FROM ".$stpl_table."_student_unr
WHERE datum=".$this->db_add_param($this->datum)." AND stunde=".$this->db_add_param($this->stunde)." AND student_uid IN(
SELECT uid FROM public.vw_gruppen WHERE
SELECT uid FROM public.vw_gruppen WHERE
";
$sql_query.="(studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem)."
AND studiensemester_kurzbz=(
SELECT tbl_studiensemester.studiensemester_kurzbz
FROM
FROM
public.tbl_studiensemester
WHERE
WHERE
tbl_studiensemester.ende >= ".$this->db_add_param($this->datum)."
AND tbl_studiensemester.start <=".$this->db_add_param($this->datum)." LIMIT 1)";
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
$sql_query.=" AND (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).")";
else
else
{
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
$sql_query.=" AND (verband=".$this->db_add_param($this->ver).")";
else
else
$sql_query.=" AND (verband IS NULL OR verband='' OR verband=' ')";
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
$sql_query.=" AND (gruppe=".$this->db_add_param($this->grp).")";
else
else
$sql_query.=" AND (gruppe IS NULL OR gruppe='' OR gruppe=' ')";
}
$sql_query.=")) AND unr!=".$this->db_add_param($this->unr);
if (!$erg_stpl=$this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$anz=$this->db_num_rows($erg_stpl);
if ($anz>0)
{
$row = $this->db_fetch_object($erg_stpl);
$this->errormsg="Kollision Student ($stpl_table): $row->student_uid $row->datum/$row->stunde ";
return true;
}
else
else
{
return false;
}
@@ -842,10 +889,10 @@ class lehrstunde extends basis_db
- gleiches Datum
- gleiche Stunde
- gleiche UNR
*/
*/
foreach($result as $key=>$row_result)
{
if($row_result->unr==$row_lehrstunde->unr
if($row_result->unr==$row_lehrstunde->unr
&& $row_result->datum==$row_lehrstunde->datum
&& $row_result->stunde==$row_lehrstunde->stunde)
{
@@ -896,15 +943,15 @@ class lehrstunde extends basis_db
public function getStundenplanData($db_stpl_table, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null, $lehreinheit_id=null, $mitarbeiter_uid=null, $student_uid=null)
{
$qry = "SELECT
stpl.datum, min(stpl.stunde) as stundevon, max(stpl.stunde) as stundebis,
$qry = "SELECT
stpl.datum, min(stpl.stunde) as stundevon, max(stpl.stunde) as stundebis,
stpl.lehreinheit_id, lehrfach.bezeichnung as lehrfach_bezeichnung,
array_agg(
CASE WHEN gruppe_kurzbz is not null THEN gruppe_kurzbz
CASE WHEN gruppe_kurzbz is not null THEN gruppe_kurzbz
ELSE (SELECT UPPER(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=stpl.studiengang_kz) || COALESCE(stpl.semester,'0') || COALESCE(stpl.verband,'') || COALESCE(stpl.gruppe,'')
END) as gruppen, array_agg(mitarbeiter_uid) as lektoren,
array_agg(ort_kurzbz) as orte
FROM
FROM
lehre.tbl_".$db_stpl_table." as stpl
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
@@ -912,10 +959,10 @@ class lehrstunde extends basis_db
if($lehrveranstaltung_id!='')
{
$qry.=" lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
$qry.=" lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
}
elseif($lehreinheit_id!='')
{
@@ -924,10 +971,10 @@ class lehrstunde extends basis_db
elseif($mitarbeiter_uid!='')
{
$qry.=" mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND lehreinheit_id IN(
SELECT
lehreinheit_id
FROM
lehre.tbl_lehreinheitmitarbeiter
SELECT
lehreinheit_id
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
}
+2 -1
View File
@@ -21,7 +21,8 @@
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/easyui/themes/icon.css">';
+2 -1
View File
@@ -21,7 +21,8 @@
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css">';
+2
View File
@@ -21,6 +21,8 @@
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<script src="'.$dr.'vendor/components/jquery/jquery.min.js"></script>';
+18
View File
@@ -743,4 +743,22 @@ class moodle24_course extends basis_db
return true;
}
/**
* gibt alle LE Ids der Übergebenen Moodle_Course_ID zurück
*/
public function getLeFromCourse($moodle_course_id)
{
$qry = "SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE moodle_version='2.4' AND mdl_course_id =".$this->db_add_param($moodle_course_id, FHC_INTEGER).';';
$le = array();
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$le[] = $row->lehreinheit_id;
}
}
return $le;
}
}
+1 -1
View File
@@ -389,7 +389,7 @@ class notiz extends basis_db
public.tbl_notiz
LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
WHERE person_id = ' . $this->db_add_param($person_id, FHC_INTEGER) .
' AND (insertvon = ' . $this->db_add_param('online'.$person_id) .' OR insertvon = ' . $this->db_add_param('online_notiz'.$person_id).')
' AND (insertvon = ' . $this->db_add_param('online') .' OR insertvon = ' . $this->db_add_param('online_notiz').')
ORDER BY notiz_id';
+16 -2
View File
@@ -71,6 +71,7 @@ class prestudent extends person
public $studienplan_bezeichnung;
public $bestaetigtam;
public $bestaetigtvon;
public $bewerbung_abgeschicktamum;
public $studiensemester_old = '';
public $ausbildungssemester_old = '';
@@ -477,6 +478,7 @@ class prestudent extends person
$rolle->bestaetigtam = $row->bestaetigtam;
$rolle->bestaetigtvon = $row->bestaetigtvon;
$rolle->anmerkung_status = $row->anmerkung;
$rolle->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
$this->result[] = $rolle;
}
return true;
@@ -529,6 +531,7 @@ class prestudent extends person
$this->bestaetigtam = $row->bestaetigtam;
$this->bestaetigtvon = $row->bestaetigtvon;
$this->anmerkung_status = $row->anmerkung;
$this->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
return true;
}
@@ -584,6 +587,12 @@ class prestudent extends person
case "interessenten":
$qry.=" AND a.rolle='Interessent'";
break;
case "bewerbungabgeschickt":
$qry.=" AND a.rolle='Interessent' AND bewerbung_abgeschicktamum is not null";
break;
case "statusbestaetigt":
$qry.=" AND a.rolle='Interessent' AND bestaetigtam is not null";
break;
case "zgv":
$stg_obj = new studiengang();
$stg_obj->load($studiengang_kz);
@@ -772,7 +781,7 @@ class prestudent extends person
$qry = 'INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz,
studiensemester_kurzbz, ausbildungssemester, datum, insertamum, insertvon,
updateamum, updatevon, ext_id, orgform_kurzbz, bestaetigtam, bestaetigtvon, anmerkung,
studienplan_id) VALUES('.
bewerbung_abgeschicktamum, studienplan_id) VALUES('.
$this->db_add_param($this->prestudent_id).",".
$this->db_add_param($this->status_kurzbz).",".
$this->db_add_param($this->studiensemester_kurzbz).",".
@@ -787,6 +796,7 @@ class prestudent extends person
$this->db_add_param($this->bestaetigtam).",".
$this->db_add_param($this->bestaetigtvon).",".
$this->db_add_param($this->anmerkung_status).",".
$this->db_add_param($this->bewerbung_abgeschicktamum).",".
$this->db_add_param($this->studienplan_id,FHC_INTEGER).");";
}
else
@@ -813,6 +823,7 @@ class prestudent extends person
' updatevon='.$this->db_add_param($this->updatevon).",".
' bestaetigtam='.$this->db_add_param($this->bestaetigtam).",".
' bestaetigtvon='.$this->db_add_param($this->bestaetigtvon).",".
' bewerbung_abgeschicktamum='.$this->db_add_param($this->bewerbung_abgeschicktamum).",".
' studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER).",".
' anmerkung='.$this->db_add_param($this->anmerkung_status).",".
' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).
@@ -870,7 +881,7 @@ class prestudent extends person
$log->sql = $qry;
$log->sqlundo = 'INSERT INTO public.tbl_prestudentstatus(prestudent_id, status_kurzbz, studiensemester_kurzbz,'
. ' ausbildungssemester, datum, insertamum, insertvon, updateamum, updatevon, ext_id, orgform_kurzbz,'
. ' bestaetigtam, bestaetigtvon, anmerkung, studienplan_id) VALUES('.
. ' bestaetigtam, bestaetigtvon, anmerkung, bewerbung_abgeschicktamum, studienplan_id) VALUES('.
$this->db_add_param($this->prestudent_id).','.
$this->db_add_param($this->status_kurzbz).','.
$this->db_add_param($this->studiensemester_kurzbz).','.
@@ -885,6 +896,7 @@ class prestudent extends person
$this->db_add_param($this->bestaetigtam).','.
$this->db_add_param($this->bestaetigtvon).','.
$this->db_add_param($this->anmerkung_status).','.
$this->db_add_param($this->bewerbung_abgeschicktamum).','.
$this->db_add_param($this->studienplan_id, FHC_INTEGER).');';
if($log->save(true))
{
@@ -983,6 +995,7 @@ class prestudent extends person
$this->updatevon = $row->updatevon;
$this->bestaetigtam = $row->bestaetigtam;
$this->bestaetigtvon = $row->bestaetigtvon;
$this->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
$this->orgform_kurzbz = $row->orgform_kurzbz;
$this->studienplan_id = $row->studienplan_id;
$this->studienplan_bezeichnung = $row->studienplan_bezeichnung;
@@ -1035,6 +1048,7 @@ class prestudent extends person
$this->updatevon = $row->updatevon;
$this->bestaetigtam = $row->bestaetigtam;
$this->bestaetigtvon = $row->bestaetigtvon;
$this->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
$this->orgform_kurzbz = $row->orgform_kurzbz;
$this->studienplan_id = $row->studienplan_id;
return true;
+2 -2
View File
@@ -280,13 +280,13 @@ class studiengang extends basis_db
*/
public function getOrgForm($studiengang_kz)
{
$qry = 'SELECT distinct orgform_kurzbz '
$qry = 'SELECT distinct tbl_studienplan.orgform_kurzbz '
. 'FROM lehre.tbl_studienordnung '
. 'JOIN lehre.tbl_studienplan '
. 'USING (studienordnung_id) '
. 'WHERE aktiv '
. 'AND studiengang_kz = ' . $this->db_add_param($studiengang_kz, FHC_INTEGER)
. ' AND orgform_kurzbz!='. $this->db_add_param('DDP');
. ' AND tbl_studienplan.orgform_kurzbz!='. $this->db_add_param('DDP');
if($result = $this->db_query($qry))
{
+121 -68
View File
@@ -37,20 +37,20 @@ class studiensemester extends basis_db
/**
* Konstruktor - Laedt optional ein StSem
*
*
* @param $studiensemester_kurzbz StSem das geladen werden soll (default=null)
*/
public function __construct($studiensemester_kurzbz=null)
{
parent::__construct();
if($studiensemester_kurzbz != null)
$this->load($studiensemester_kurzbz);
}
/**
* Laedt das Studiensemester mit der uebergebenen Kurzbz
*
*
* @param $studiensemester_kurzbz Stsem das geladen werden soll
*/
public function load($studiensemester_kurzbz)
@@ -84,9 +84,9 @@ class studiensemester extends basis_db
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
*
*
* @return true wenn ok, false im Fehlerfall
*/
*/
private function validate()
{
if(mb_strlen($this->studiensemester_kurzbz)>16)
@@ -111,7 +111,7 @@ class studiensemester extends basis_db
* Speichert das Studiensemester in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
* angelegt, ansonsten der Datensatz upgedated
*
*
* @return true wenn erfolgreich, false im Fehlerfall
*/
public function save()
@@ -149,7 +149,7 @@ class studiensemester extends basis_db
/**
* Liefert das aktuelle Studiensemester
*
*
* @return aktuelles Studiensemester oder false wenn es keines gibt
*/
public function getakt()
@@ -177,17 +177,17 @@ class studiensemester extends basis_db
/**
* Liefert ein Studiensemester mit Startdatum vom naechstgelegenen Studiensemester und
* dem Startdatum vom folgenden Studiensemester als Endedatum
*
*
* @return boolean
*/
public function getNearestTillNext()
{
if(!$this->getNearest())
return false;
$start=$this->start;
$studiensemester_kurzbz=$this->studiensemester_kurzbz;
if (!$this->getNextFrom($this->studiensemester_kurzbz))
return false;
$ende=$this->start;
@@ -201,7 +201,7 @@ class studiensemester extends basis_db
/**
* Liefert das Aktuelle Studiensemester oder das darauffolgende
*
*
* @param $semester wenn das semester uebergeben wird, dann werden nur die studiensemester
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
* @return Studiensemester oder false wenn es keines gibt
@@ -213,7 +213,7 @@ class studiensemester extends basis_db
else
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE true";
if($semester!='')
{
if($semester%2==0)
@@ -245,7 +245,7 @@ class studiensemester extends basis_db
/**
* Liefert das naechstgelegenste Studiensemester
*
*
* @param semester wenn das semester uebergeben wird, dann werden nur die studiensemester
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
* @return Studiensemester oder false wenn es keines gibt
@@ -292,7 +292,7 @@ class studiensemester extends basis_db
public function getAll($order = null)
{
$qry = "SELECT * FROM public.tbl_studiensemester ORDER BY ende";
if($order == "desc")
$qry .= " DESC";
@@ -322,7 +322,7 @@ class studiensemester extends basis_db
/**
* Liefert das naechste Studiensemester
*
*
* @param $art Wenn art=WS dann wird das naechste Wintersemester geliefert
* Wenn art=SS dann wird das naechste Sommersemester geliefert
* @return true wenn ok, false wenn kein entsprechendes vorhanden ist
@@ -356,10 +356,10 @@ class studiensemester extends basis_db
return true;
}
/**
* Liefert die naechsten Studiensemester bis zum eingestellten Limit
*
*
* @param $art Wenn art=WS dann wird das naechste Wintersemester geliefert
* Wenn art=SS dann wird das naechste Sommersemester geliefert
* $limit Wie viele kommende Studiensemester sollen geliefert werden?
@@ -374,10 +374,10 @@ class studiensemester extends basis_db
$qry.= " AND substring(studiensemester_kurzbz from 1 for 2)=".$this->db_add_param($art);
$qry.=" ORDER BY start";
if(!is_null($limit) && is_numeric($limit))
$qry.=" LIMIT ".$limit;
else
else
$qry.=" LIMIT 1";
if($this->db_query($qry))
@@ -385,17 +385,17 @@ class studiensemester extends basis_db
while($row = $this->db_fetch_object())
{
$stsem_obj = new studiensemester();
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$stsem_obj->start = $row->start;
$stsem_obj->ende = $row->ende;
$stsem_obj->bezeichnung = $row->bezeichnung;
$this->studiensemester[] = $stsem_obj;
}
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
return false;
@@ -404,7 +404,7 @@ class studiensemester extends basis_db
/**
* Liefert das vorige Studiensemester
*
*
* @return studiensemester_kurzbz oder false wenn keines vorhanden
*/
public function getPrevious()
@@ -429,10 +429,10 @@ class studiensemester extends basis_db
return false;
}
}
/**
* Liefert das vorvorige Studiensemester
*
*
* @return studiensemester_kurzbz oder false wenn keines vorhanden
*/
public function getBeforePrevious()
@@ -468,7 +468,7 @@ class studiensemester extends basis_db
/**
* Liefert das Studiensemester vor $studiensemester_kurzbz
*
*
* @param $studiensemester_kurzbz
* @return $studiensemester_kurzbz oder false wenn Fehler
*/
@@ -500,7 +500,7 @@ class studiensemester extends basis_db
/**
* Liefert das Studiensemester nach $studiensemester_kurzbz
*
*
* @param $studiensemester_kurzbz
* @return $studiensemester_kurzbz oder false wenn Fehler
*/
@@ -535,7 +535,7 @@ class studiensemester extends basis_db
/**
* Liefert das Studiensemester das aktuell am naehesten zu $studiensemester_kurzbz liegt
*
*
* @param $studiensemester_kurzbz
* @return $studiensemester_kurzbz oder false wenn Fehler
*/
@@ -569,7 +569,7 @@ class studiensemester extends basis_db
/**
* Springt von Studiensemester $studiensemester_kurzbz um $wert Studiensemester vor/zurueck
*
*
* @param $studiensemester_kurzbz
* @param $wert
* @return studiensemester_kurzbz
@@ -616,13 +616,13 @@ class studiensemester extends basis_db
else
return $studiensemester_kurzbz;
}
else
else
{
$this->errormsg='Fehler bei einer Abfrage';
return false;
}
}
/**
* Laedt die vergangenen Studiensemester und das aktuelle
*
@@ -655,12 +655,12 @@ class studiensemester extends basis_db
return false;
}
}
/**
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
* zurueck, danach das aktuelle.
*
*
*
*
* @return studiensemester_kurzbz oder false wenn keines vorhanden
*/
public function getLastOrAktSemester($days=60)
@@ -685,12 +685,12 @@ class studiensemester extends basis_db
return false;
}
}
/**
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
* zurueck, danach das aktuelle.
*
*
*
*
* @return studiensemester_kurzbz oder false wenn keines vorhanden
*/
public function getNextOrAktSemester($days=60)
@@ -717,7 +717,7 @@ class studiensemester extends basis_db
}
/**
* Liefert den UNIX Timestamp (Beginn,Ende) eines Studiensemesters
*
*
* @param $studiensemester_kurzbz
* @return Beginn und Ende eines Studiensemesters als Timestamp
*/
@@ -729,7 +729,7 @@ class studiensemester extends basis_db
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
{
if(!isset($this->begin))
$this->begin=new stdclass();
$this->begin->start=mktime(0,0,0,mb_substr($row->start,5,2),mb_substr($row->start,8,2),mb_substr($row->start,0,4));
@@ -749,42 +749,45 @@ class studiensemester extends basis_db
$this->errormsg = 'Fehler beim Ermitteln des Studiensemesters';
return false;
}
}
}
/**
* untersucht das uebergebene datum in welchem semester es sich befindet
* @param type $datum
* @return boolean
* @return boolean
*/
public function getSemesterFromDatum($datum)
public function getSemesterFromDatum($datum, $next=null)
{
if($datum == '')
{
$this->errormsg = "Ungueltiges Datum uebergeben";
return false;
$this->errormsg = "Ungueltiges Datum uebergeben";
return false;
}
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." AND ende >= ".$this->db_add_param($datum).';';
if(is_null($next))
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." AND ende >= ".$this->db_add_param($datum).';';
else
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." ORDER BY start desc limit 1;";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
return $row->studiensemester_kurzbz;
return $row->studiensemester_kurzbz;
}
else
{
$this->errormsg = "Es wurde kein passendes Studiensemester gefunden";
return false;
$this->errormsg = "Es wurde kein passendes Studiensemester gefunden";
return false;
}
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten.";
return false;
$this->errormsg = "Fehler bei der Abfrage aufgetreten.";
return false;
}
}
/**
* Liefert das dazupassende Studiensemester im Studienjahr
* Liefert das dazupassende Studiensemester im Studienjahr
* @param $studiensemester_kurzbz
* @return $studiensemester_kurzbz
*/
@@ -798,39 +801,39 @@ class studiensemester extends basis_db
/**
* Laedt die Studiensemester die fuer die Onlinebewerbung aktiviert sind
*
*
* @return true wenn ok, sonst false
*/
public function getStudiensemesterOnlinebewerbung()
{
$qry = "SELECT * FROM public.tbl_studiensemester WHERE onlinebewerbung=true
ORDER BY start";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$stsem_obj = new studiensemester();
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$stsem_obj->start = $row->start;
$stsem_obj->ende = $row->ende;
$stsem_obj->bezeichnung = $row->bezeichnung;
$this->studiensemester[] = $stsem_obj;
}
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
return false;
}
}
/**
* Liefert ausgehend von heutigen Datum $plus studiensemester in die Zukunft und $minus Studiensemester in die Vergangenheit
*
*
* @param integer $plus Wieviele Studiensemester in die Zukunft sollen ausgegeben werden.
* @param integer $minus Wieviele Studiensemester in die Vergangenheit sollen ausgegeben werden.
*
@@ -840,30 +843,30 @@ class studiensemester extends basis_db
{
if((is_null($plus) || !is_numeric($plus)) || (is_null($minus) || !is_numeric($minus)))
return false;
$qry = "SELECT DISTINCT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz IN
(
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start >= now()
ORDER BY ende ASC LIMIT $plus)
ORDER BY ende ASC LIMIT $plus)
UNION
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start <= now()
ORDER BY start DESC LIMIT $minus)
)
ORDER BY ende DESC";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$stsem_obj = new studiensemester();
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$stsem_obj->start = $row->start;
$stsem_obj->ende = $row->ende;
$stsem_obj->bezeichnung = $row->bezeichnung;
$stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz;
$stsem_obj->beschreibung = $row->beschreibung;
$this->studiensemester[] = $stsem_obj;
}
return true;
@@ -875,5 +878,55 @@ class studiensemester extends basis_db
}
}
/**
* Liefert das Studiensemester das am naehesten zu einem Datum in einem
* Studiensemester liegt
*
* @param $studiensemester_kurzbz
* @param $datum
* @return $studiensemester_kurzbz oder false wenn Fehler
*/
public function getNearestTo($studiensemester_kurzbz, $datum)
{
$qry = "SELECT * FROM
(
SELECT tbl_studiensemester.studiensemester_kurzbz,
tbl_studiensemester.start,
tbl_studiensemester.ende,
tbl_studiensemester.ext_id,
@ (tbl_studiensemester.start - ".$this->db_add_param($datum)."::date) AS delta
FROM tbl_studiensemester
UNION
SELECT tbl_studiensemester.studiensemester_kurzbz,
tbl_studiensemester.start,
tbl_studiensemester.ende,
tbl_studiensemester.ext_id,
@ (".$this->db_add_param($datum)."::date - tbl_studiensemester.ende) AS delta
FROM tbl_studiensemester
) a
WHERE a.studiensemester_kurzbz!=".$this->db_add_param($studiensemester_kurzbz)."
ORDER BY delta LIMIT 1";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
return $row->studiensemester_kurzbz;
}
else
{
$this->errormsg = 'Es wurde kein folgendes Studiensemester gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Ermitteln des folgenden Studiensemesters';
return false;
}
}
}
?>
+8 -1
View File
@@ -638,7 +638,14 @@ class wochenplan extends basis_db
// Formularbeginn wenn Lektor
if ($raumres && $this->type=='ort')
echo '<form name="reserve" method="post" action="stpl_week.php">'.$this->crlf;
{
$ort = new ort();
$ort->load($this->ort_kurzbz);
if($ort->reservieren)
echo '<form name="reserve" method="post" action="stpl_week.php">'.$this->crlf;
else
$raumres=false;
}
//Tabelle zeichnen
echo ' <table class="stdplan" width="100%" border="0" cellpadding="1" cellspacing="1" name="Stundenplantabelle" align="center">'.$this->crlf;
+5 -1
View File
@@ -10,7 +10,11 @@ test:
lint:
php_loc:
php_docblock_checker:
allowed_warnings: -1
allowed_warnings: -1
# phing:
# build_file: 'build.xml'
# targets:
# - "deploy"
# php_unit:
# directory: "tests/phpunit/"
# args: "--bootstrap 'test/phpunit/bootstrap.php' --configuration 'tests/phpunit/phpunit.xml'"
+4 -1
View File
@@ -83,6 +83,7 @@ foreach ($dok->result as $row)
// Schleife für alle Akten -> wenn akte draufhängt id in rdf -> akte_id anhängen
$onlinebewerbung = ($row->onlinebewerbung)?'ja':'nein';
$pflicht = ($row->pflicht)?'ja':'nein';
// Wenn Akten vorhanden anzeigen
if(count($akte->result) != 0)
{
@@ -93,7 +94,7 @@ foreach ($dok->result as $row)
$datumhochgeladen=(isset($a->insertamum))?$date->formatDatum($a->insertamum, 'd.m.Y'):'';
$nachgereicht = (isset($a->nachgereicht) && $a->nachgereicht)?'ja':'';
$info = (isset($a->anmerkung))?$akte->result[0]->anmerkung:'';
$vorhanden = (isset($a->dms_id) || $a->inhalt_vorhanden)?'ja':'nein';
$vorhanden = (isset($a->dms_id) || $a->inhalt_vorhanden)?'ja':((isset($a->nachgereicht) && $a->nachgereicht)?'nachgereicht':'nein');
echo '
<RDF:li>
@@ -109,6 +110,7 @@ foreach ($dok->result as $row)
<DOKUMENT:titel_intern><![CDATA['.$a->titel_intern.']]></DOKUMENT:titel_intern>
<DOKUMENT:anmerkung_intern><![CDATA['.$a->anmerkung_intern.']]></DOKUMENT:anmerkung_intern>
<DOKUMENT:onlinebewerbung><![CDATA['.$onlinebewerbung.']]></DOKUMENT:onlinebewerbung>
<DOKUMENT:pflicht><![CDATA['.$pflicht.']]></DOKUMENT:pflicht>
</RDF:Description>
</RDF:li>
';
@@ -130,6 +132,7 @@ foreach ($dok->result as $row)
<DOKUMENT:titel_intern></DOKUMENT:titel_intern>
<DOKUMENT:anmerkung_intern></DOKUMENT:anmerkung_intern>
<DOKUMENT:onlinebewerbung><![CDATA['.$onlinebewerbung.']]></DOKUMENT:onlinebewerbung>
<DOKUMENT:pflicht><![CDATA['.$pflicht.']]></DOKUMENT:pflicht>
</RDF:Description>
</RDF:li>
';
+15 -14
View File
@@ -78,11 +78,11 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
}
if($lehreinheit_id!='')
{
{
$lehreinheit->load($lehreinheit_id);
draw_row($lehreinheit);
}
else
else
{
if($lehrveranstaltung_id!='')
{
@@ -90,7 +90,7 @@ else
foreach ($lehreinheit->lehreinheiten as $row)
draw_row($row);
}
else
else
die('Fehlerhafte Parameteruebergabe');
}
@@ -98,41 +98,41 @@ else
function draw_row($row)
{
global $rdf_url;
$legrp = new lehreinheitgruppe();
$legrp->getLehreinheitgruppe($row->lehreinheit_id);
$grp='';
foreach ($legrp->lehreinheitgruppe as $leg_row)
{
if($leg_row->gruppe_kurzbz!='')
$grp .=" ".$leg_row->gruppe_kurzbz;
else
else
$grp .=" ".$leg_row->semester.$leg_row->verband.$leg_row->gruppe;
}
$qry = "SELECT kurzbz FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE
$qry = "SELECT kurzbz FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE
lehreinheit_id='$row->lehreinheit_id'";
$mitarbeiter='';
$db = new basis_db();
if($db->db_query($qry))
{
while($row_ma = $db->db_fetch_object())
$mitarbeiter .=' '.$row_ma->kurzbz;
}
$mitarbeiter = '('.$mitarbeiter.')';
$anzahl_studenten=0;
$anzahl_studenten=0;
$qry = "SELECT count(*) as anz FROM campus.vw_student_lehrveranstaltung WHERE lehreinheit_id='".addslashes($row->lehreinheit_id)."'";
if($db->db_query($qry))
if($row_std = $db->db_fetch_object())
$anzahl_studenten = $row_std->anz;
$lehrfach = new lehrveranstaltung();
$lehrfach->load($row->lehrfach_id);
echo '
<RDF:li>
<RDF:Description id="'.$row->lehreinheit_id.'" about="'.$rdf_url.'/'.$row->lehreinheit_id.'" >
@@ -153,10 +153,11 @@ function draw_row($row)
<LEHREINHEIT:lvnr><![CDATA['.$row->lvnr.']]></LEHREINHEIT:lvnr>
<LEHREINHEIT:bezeichnung><![CDATA['.$lehrfach->kurzbz.'-'.$row->lehrform_kurzbz.' '.$lehrfach->bezeichnung.' '.$grp.' '.$mitarbeiter.']]></LEHREINHEIT:bezeichnung>
<LEHREINHEIT:anzahl_studenten><![CDATA['.$anzahl_studenten.']]></LEHREINHEIT:anzahl_studenten>
<LEHREINHEIT:gewicht><![CDATA['.$row->gewicht.']]></LEHREINHEIT:gewicht>
</RDF:Description>
</RDF:li>
';
}
}
?>
</RDF:Seq>
</RDF:RDF>
+18 -17
View File
@@ -63,10 +63,10 @@ $db = new basis_db();
$lvaDAO=new lehrveranstaltung();
if($uid!='' && $stg_kz!=-1) // Alle LVs eines Mitarbeiters
{
$qry = "SELECT
$qry = "SELECT
distinct on(lehrveranstaltung_id) * ,'' as studienplan_id, '' as studienplan_bezeichnung
FROM
campus.vw_lehreinheit
campus.vw_lehreinheit
WHERE
studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
AND mitarbeiter_uid=".$db->db_add_param($uid);
@@ -88,11 +88,11 @@ elseif($fachbereich_kurzbz!='') // Alle LVs eines Fachbereiches
tbl_lehrveranstaltung.planlektoren as lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten as lv_planpersonalkosten,
tbl_lehrveranstaltung.plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz as lv_orgform_kurzbz,
tbl_lehrveranstaltung.lehrveranstaltung_id,
tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz,
tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz,
tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz,
tbl_lehrveranstaltung.bezeichnung_english as lv_bezeichnung_english,
tbl_lehrveranstaltung.studiengang_kz, tbl_studienplan_lehrveranstaltung.semester, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.semesterstunden,
tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv,
tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv,
tbl_studienplan.studienplan_id::text, tbl_studienplan.bezeichnung as studienplan_bezeichnung, tbl_lehrveranstaltung.lehrtyp_kurzbz
FROM
lehre.tbl_lehrveranstaltung
@@ -108,17 +108,17 @@ elseif($fachbereich_kurzbz!='') // Alle LVs eines Fachbereiches
}
else
$qry='';
$qry .= "
SELECT
distinct on(lehrveranstaltung_id)
$qry .= "
SELECT
distinct on(lehrveranstaltung_id)
lv_studiengang_kz, lv_semester, lv_kurzbz, lv_bezeichnung, lv_ects,
lv_lehreverzeichnis, lv_planfaktor, lv_planlektoren, lv_planpersonalkosten,
lv_plankostenprolektor, lv_orgform_kurzbz, lehrveranstaltung_id,
lehrform_kurzbz, lv_lehrform_kurzbz, lv_bezeichnung_english, studiengang_kz, semester, anmerkung, sprache, semesterstunden,
lehre, aktiv,
'' as studienplan_id, '' as studienplan_bezeichnung,
'' as studienplan_id, '' as studienplan_bezeichnung,
(SELECT lehrtyp_kurzbz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=vw_lehreinheit.lehrveranstaltung_id) as lehrtyp_kurzbz
FROM
FROM
campus.vw_lehreinheit
WHERE
studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
@@ -151,11 +151,11 @@ elseif($oe_kurzbz!='') // Alle LVs einer Organisationseinheit
tbl_lehrveranstaltung.planlektoren as lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten as lv_planpersonalkosten,
tbl_lehrveranstaltung.plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz as lv_orgform_kurzbz,
tbl_lehrveranstaltung.lehrveranstaltung_id,
tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz,
tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz,
tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz,
tbl_lehrveranstaltung.bezeichnung_english as lv_bezeichnung_english,
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.semesterstunden,
tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv,
tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv,
'' as studienplan_id, '' as studienplan_bezeichnung, tbl_lehrveranstaltung.lehrtyp_kurzbz
FROM
lehre.tbl_lehrveranstaltung
@@ -195,14 +195,14 @@ else
if(count($stp_ids)>0)
{
// Alle Lehrveranstaltungen die lt Studienplan zugeordnet sind
$qry.= "SELECT lehrveranstaltung_id, kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, bezeichnung_english as lv_bezeichnung_english, studiengang_kz,
$qry.= "SELECT lehrveranstaltung_id, kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, bezeichnung_english as lv_bezeichnung_english, studiengang_kz,
tbl_studienplan_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache,
ects as lv_ects, semesterstunden, anmerkung, lehre, lehreverzeichnis as lv_lehreverzeichnis, tbl_lehrveranstaltung.aktiv,
planfaktor as lv_planfaktor, planlektoren as lv_planlektoren, planpersonalkosten as lv_planpersonalkosten,
plankostenprolektor as lv_plankostenprolektor, lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.orgform_kurzbz,
tbl_studienplan_lehrveranstaltung.studienplan_id::text as studienplan_id, tbl_studienplan.bezeichnung as studienplan_bezeichnung, tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent::text,
tbl_lehrveranstaltung.lehrtyp_kurzbz
FROM
FROM
lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN lehre.tbl_studienplan USING(studienplan_id)
@@ -253,7 +253,7 @@ $oRdf->sendHeader();
//Fachbereichskoordinatoren laden
$qry_fbk = "SELECT kurzbz FROM public.tbl_mitarbeiter LEFT JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE tbl_benutzer.aktiv AND mitarbeiter_uid =
(
SELECT
SELECT
COALESCE(tbl_lehrveranstaltung.koordinator, uid) as koordinator
FROM
lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzerfunktion, public.tbl_studiensemester, public.tbl_studiengang, public.tbl_fachbereich
@@ -263,16 +263,16 @@ $oRdf->sendHeader();
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND
lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz AND
tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz AND
tbl_benutzerfunktion.funktion_kurzbz='fbk' AND
tbl_benutzerfunktion.funktion_kurzbz='fbk' AND
tbl_lehreinheit.studiensemester_kurzbz=tbl_studiensemester.studiensemester_kurzbz AND
tbl_benutzerfunktion.oe_kurzbz=tbl_studiengang.oe_kurzbz AND
(tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
(tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) AND
tbl_studiengang.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz ORDER BY tbl_studiensemester.ende DESC LIMIT 1 ) ";
if(!$result_fbk = $db->db_query($qry_fbk))
die('Fehlerhafte Abfrage');
$fbk='';
while($row_fbk = $db->db_fetch_object($result_fbk))
{
@@ -411,6 +411,7 @@ $oRdf->sendHeader();
$oRdf->obj[$i]->setAttribut('gruppen',$grp);
$oRdf->obj[$i]->setAttribut('lektoren',$lkt);
$oRdf->obj[$i]->setAttribut('fachbereich',$fachbereich);
$oRdf->obj[$i]->setAttribut('gewicht',$row_le->gewicht);
$oRdf->addSequence($row_lva->lehrveranstaltung_id.'/'.$row_le->lehreinheit_id,$row_lva->lehrveranstaltung_id);
+39 -1
View File
@@ -177,6 +177,24 @@ function draw_orgformsubmenu($stg_kz, $orgform)
<VERBAND:orgform>'.$orgform.'</VERBAND:orgform>
</RDF:Description>
<RDF:Description RDF:about="'.$rdf_url.$stg_kurzbz.'/'.$orgform.'/'.$stsem->studiensemester_kurzbz.'/interessenten/bewerbungabgeschickt" >
<VERBAND:name>Bewerbung abgeschickt</VERBAND:name>
<VERBAND:stg>'.$stg_kurzbz.'</VERBAND:stg>
<VERBAND:stg_kz>'.$stg_kz.'</VERBAND:stg_kz>
<VERBAND:stsem>'.$stsem->studiensemester_kurzbz.'</VERBAND:stsem>
<VERBAND:typ>bewerbungabgeschickt</VERBAND:typ>
<VERBAND:orgform>'.$orgform.'</VERBAND:orgform>
</RDF:Description>
<RDF:Description RDF:about="'.$rdf_url.$stg_kurzbz.'/'.$orgform.'/'.$stsem->studiensemester_kurzbz.'/interessenten/statusbestaetigt" >
<VERBAND:name>Status bestätigt</VERBAND:name>
<VERBAND:stg>'.$stg_kurzbz.'</VERBAND:stg>
<VERBAND:stg_kz>'.$stg_kz.'</VERBAND:stg_kz>
<VERBAND:stsem>'.$stsem->studiensemester_kurzbz.'</VERBAND:stsem>
<VERBAND:typ>statusbestaetigt</VERBAND:typ>
<VERBAND:orgform>'.$orgform.'</VERBAND:orgform>
</RDF:Description>
<RDF:Description RDF:about="'.$rdf_url.$stg_kurzbz.'/'.$orgform.'/'.$stsem->studiensemester_kurzbz.'/interessenten/zgv" >
<VERBAND:name>ZGV erfüllt</VERBAND:name>
<VERBAND:stg>'.$stg_kurzbz.'</VERBAND:stg>
@@ -253,6 +271,8 @@ function draw_orgformsubmenu($stg_kz, $orgform)
$orgform_sequence[$stg_kz].= "\t\t\t<RDF:li>";
$orgform_sequence[$stg_kz].= "\n\t\t\t\t<RDF:Seq RDF:about=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten\">\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/zgv\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
@@ -465,7 +485,23 @@ while ($row=$dbo->db_fetch_object())
<VERBAND:stsem><?php echo $stsem->studiensemester_kurzbz; ?></VERBAND:stsem>
<VERBAND:typ>interessenten</VERBAND:typ>
</RDF:Description>
<RDF:Description RDF:about="<?php echo $rdf_url.$stg_kurzbz.'/'.$stsem->studiensemester_kurzbz.'/interessenten/bewerbungabgeschickt'; ?>" >
<VERBAND:name>Bewerbung abgeschickt</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>bewerbungabgeschickt</VERBAND:typ>
</RDF:Description>
<RDF:Description RDF:about="<?php echo $rdf_url.$stg_kurzbz.'/'.$stsem->studiensemester_kurzbz.'/interessenten/statusbestaetigt'; ?>" >
<VERBAND:name>Status bestätigt</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>statusbestaetigt</VERBAND:typ>
</RDF:Description>
<RDF:Description RDF:about="<?php echo $rdf_url.$stg_kurzbz.'/'.$stsem->studiensemester_kurzbz.'/interessenten/zgv'; ?>" >
<VERBAND:name>ZGV erfüllt</VERBAND:name>
<VERBAND:stg><?php echo $stg_kurzbz; ?></VERBAND:stg>
@@ -683,6 +719,8 @@ draw_orgformpart($stg_kz);
echo "\t\t\t<RDF:li>";
echo "\n\t\t\t\t<RDF:Seq RDF:about=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten\">\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/zgv\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
+1 -1
View File
@@ -529,7 +529,7 @@ if($xmlformat=='rdf')
}
elseif(in_array($typ, array('prestudent', 'interessenten','bewerber','aufgenommen',
'warteliste','absage','zgv','reihungstestangemeldet',
'reihungstestnichtangemeldet','absolvent','diplomand')))
'reihungstestnichtangemeldet','absolvent','diplomand','bewerbungabgeschickt','statusbestaetigt')))
{
$prestd = new prestudent();
Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

+1 -1
View File
@@ -3237,7 +3237,7 @@ if($result = @$db->db_query("SELECT 1 FROM public.tbl_gruppe WHERE gruppe_kurzbz
if($db->db_num_rows($result)==0)
{
$qry = "
INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,WAHR,FALSE,FALSE);
INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,TRUE,FALSE,FALSE);
";
if(!$db->db_query($qry))
+1 -1
View File
@@ -3237,7 +3237,7 @@ if($result = @$db->db_query("SELECT 1 FROM public.tbl_gruppe WHERE gruppe_kurzbz
if($db->db_num_rows($result)==0)
{
$qry = "
INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,WAHR,FALSE,FALSE);
INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,TRUE,FALSE,FALSE);
";
if(!$db->db_query($qry))
+28 -4
View File
@@ -21,8 +21,6 @@
* Dieses Skript prueft die Datenbank auf aktualitaet, dabei werden fehlende Attribute angelegt.
*/
echo "keine Updates vorhanden!";
// Neue Spalte beschreibung_mehrsprachig bei tbl_dokument
if(!@$db->db_query("SELECT dokumentbeschreibung_mehrsprachig FROM public.tbl_dokument LIMIT 1"))
{
@@ -68,6 +66,32 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
// Neue Spalte Gewicht bei tbl_lehreinheit
if(!@$db->db_query("SELECT gewicht FROM lehre.tbl_lehreinheit LIMIT 1"))
{
$qry = "
ALTER TABLE lehre.tbl_lehreinheit ADD COLUMN gewicht smallint DEFAULT 1;;
";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_lehreinheit '.$db->db_last_error().'</strong><br>';
else
echo '<br>Spalte gewicht in lehre.tbl_lehreinheit hinzugefügt';
}
// Neue Spalte bewerbung_abgeschicktamum bei tbl_prestudentstatus
if(!@$db->db_query("SELECT bewerbung_abgeschicktamum FROM public.tbl_prestudentstatus LIMIT 1"))
{
$qry = "
ALTER TABLE public.tbl_prestudentstatus ADD COLUMN bewerbung_abgeschicktamum timestamp;
";
if(!$db->db_query($qry))
echo '<strong>public.tbl_prestudentstatus '.$db->db_last_error().'</strong><br>';
else
echo '<br>Spalte bewerbung_abgeschicktamum in public.tbl_prestudentstatus hinzugefügt';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -172,7 +196,7 @@ $tabellen=array(
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
"lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung"),
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old"),
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"),
"lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id","vertrag_id"),
"lehre.tbl_lehrfach" => array("lehrfach_id","studiengang_kz","fachbereich_kurzbz","kurzbz","bezeichnung","farbe","aktiv","semester","sprache","updateamum","updatevon","insertamum","insertvon","ext_id"),
@@ -267,7 +291,7 @@ $tabellen=array(
"public.tbl_preoutgoing_preoutgoing_status" => array("status_id","preoutgoing_status_kurzbz","preoutgoing_id","datum","insertamum","insertvon","updateamum","updatevon"),
"public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"),
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation"),
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung"),
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum"),
"public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"),
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz"),
"public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id"),
+13 -1
View File
@@ -196,7 +196,19 @@ if($work=='save')
if($anwesenheit_id!='')
{
$anwesenheit->load($anwesenheit_id);
if(!$anwesenheit->load($anwesenheit_id))
die('Es ist ein Fehler beim Laden der Daten aufgetreten: '.$anwesenheit->errormsg.' Bitte versuchen Sie es erneut');
}
else
{
// Wenn der Eintrag bereits exisitiert aber kein Update durchgefuehrt wird, dann wird der Eintrag uebersprungen
// da der Eintrag sonst doppelt vorhanden ist.
// zB bei Reload der Seite oder schliessen und erneuten oeffnen des Browsers und Absenden der POST Daten
if($anwesenheit->AnwesenheitEntryExists($_POST['lehreinheit_id'], $_POST['datum'], $user))
{
echo $anwesenheit->convert_html_chars($user)." wird übersprungen da der Eintrag bereits erfasst wurde<br>";
continue;
}
}
$anwesenheit->uid = $user;
@@ -90,6 +90,56 @@ if(isset($_POST['del']))
}
if(isset($_POST['kopieren']))
{
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
{
$uid = $_POST['uid'];
$uid_von = $_POST['uid_von'];
$rechtevon = new benutzerberechtigung();
if(!$rechtevon->loadBenutzerRollen($uid_von))
die('Fehler beim Laden der Berechtigung von '.$uid_von);
foreach($rechtevon->berechtigungen AS $row)
{
//Nur aktive Berechtigungen kopieren
if(($row->start=='' || $row->start<=date('Y-m-d')) && ($row->ende=='' || $row->ende>=date('Y-m-d')))
{
$ber = new benutzerberechtigung();
$ber->new = true;
//$ber->benutzerberechtigung_id = $benutzerberechtigung_id;
$ber->art = $row->art;
$ber->oe_kurzbz = $row->oe_kurzbz;
$ber->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$ber->rolle_kurzbz = $row->rolle_kurzbz;
$ber->uid = $uid;
$ber->funktion_kurzbz = $row->funktion_kurzbz;
$ber->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$ber->start = $row->start;
$ber->ende = $row->ende;
$ber->negativ = $row->negativ;
$ber->insertamum=date('Y-m-d H:i:s');
$ber->insertvon = $user;
$ber->updateamum = date('Y-m-d H:i:s');
$ber->updatevon = $user;
$ber->kostenstelle_id = $row->kostenstelle_id;
$ber->anmerkung = 'Kopiert von UID '.$uid_von.($row->anmerkung!=''?'. Anmerkung von UID '.$uid_von.': '.$row->anmerkung:'');
if(!$ber->save())
{
if (!$ber->new)
$errorstr .= "Datensatz konnte nicht gespeichert werden!".$ber->errormsg;
}
}
}
}
else
{
$errorstr.= $rechte->errormsg;
}
}
if(isset($_POST['schick']))
{
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
@@ -210,6 +260,12 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$name = new benutzer();
$name->load($uid);
$htmlstr .= "Berechtigungen von <b>".$name->nachname." ".$name->vorname." (".$uid.")</b>\n";
//Formular zum Kopieren von Berechtigungen
$htmlstr .= "<form action='benutzerberechtigung_details.php' method='POST' name='berechtigung_kopieren'>\n";
$htmlstr .= "Berechtigungen (aktive) kopieren von UID <input id='uid_von' name='uid_von' type='text'>\n";
$htmlstr .= "<input type='submit' name='kopieren' value='Kopieren' onclick=\"if (document.getElementById('uid_von').value == '') {alert('UID darf nicht leer sein'); return false}\">\n";
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>\n";
$htmlstr .= "</form>\n";
$i = 0;
// Zusätzlich jede Funktion mit einer gültigen Berechtigung anzeigen
@@ -235,7 +291,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$i++;
if ($i==1)
{
$htmlstr .= "<br/>Geerbte Berechtigungen aus Funktion\n";
$htmlstr .= "Geerbte Berechtigungen aus Funktion\n";
}
$htmlstr .= ($i>1?"</a>, <a href='benutzerberechtigung_details.php?funktion_kurzbz=$funktion_bezeichnung->funktion_kurzbz'>":"<a href='benutzerberechtigung_details.php?funktion_kurzbz=$funktion_bezeichnung->funktion_kurzbz'>").$funktion_bezeichnung->beschreibung."</a>";
}
+120 -33
View File
@@ -1,22 +1,22 @@
<?php
/*
* Copyright 2014 fhcomplete.org
*
*
* 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Martin Tatzber <tatzberm@technikum-wien.at>
*
@@ -26,10 +26,15 @@ require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/dokument.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/sprache.class.php');
$stg_kz = isset($_REQUEST['stg_kz']) ? $_REQUEST['stg_kz'] : '0';
$dokument_kurzbz = isset($_REQUEST['dokument_kurzbz']) ? $_REQUEST['dokument_kurzbz'] : '';
$onlinebewerbung = isset($_REQUEST['onlinebewerbung']);
$pflicht = isset($_POST['pflicht']);
$sprache = new sprache();
$sprache->getAll(true);
$action=isset($_GET['action'])?$_GET['action']:'';
if(isset($_POST['add']))
@@ -40,7 +45,7 @@ if(isset($_POST['saveDoc']))
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$db = new basis_db();
if(!$rechte->isBerechtigt('basis/studiengang', $stg_kz, 'suid'))
die('Sie haben keine Berechtigung für diese Seite');
@@ -52,7 +57,16 @@ if($action=='add')
$dokument->dokument_kurzbz = $dokument_kurzbz;
$dokument->studiengang_kz = $stg_kz;
$dokument->onlinebewerbung = $onlinebewerbung;
$dokument->pflicht = filter_input(INPUT_POST, 'pflicht', FILTER_VALIDATE_BOOLEAN);
$dokument->pflicht = $pflicht;
$beschreibung_mehrsprachig=array();
foreach($sprache->result as $row_sprache)
{
if(isset($_POST['beschreibung_mehrsprachig_'.$row_sprache->sprache]))
$beschreibung_mehrsprachig[$row_sprache->sprache]=$_POST['beschreibung_mehrsprachig_'.$row_sprache->sprache];
}
$dokument->beschreibung_mehrsprachig = $beschreibung_mehrsprachig;
$dokument->saveDokumentStudiengang();
}
}
@@ -102,13 +116,13 @@ if($action=='saveDoc')
{
$dokBezeichnung=isset($_POST['dokument_bezeichnung'])?$_POST['dokument_bezeichnung']:'';
$dokKurzbz=isset($_POST['dokument_kurzbz'])?$_POST['dokument_kurzbz']:'';
if($dokBezeichnung!='')
{
$dokument=new dokument();
$dokument->dokument_kurzbz=$dokKurzbz;
$dokument->bezeichnung=$dokBezeichnung;
if($dokument->saveDokument(true))
{
echo 'Dokument hinzugefügt';
@@ -129,16 +143,16 @@ echo '<!DOCTYPE HTML>
<script type="text/javascript" src="../../include/js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[0,0]],
widgets: ["zebra"],
headers: {2:{sorter:false}}
});
});
});
});
function showDocumentForm(dokument_kurzbz="",bezeichnung="",neu=true)
{
document.getElementById("dokument_kurzbz").value=dokument_kurzbz;
@@ -149,7 +163,11 @@ echo '<!DOCTYPE HTML>
document.getElementById("dokument_kurzbz").readOnly=true;
}
}
function confdel()
{
return confirm("Wollen Sie diesen Eintrag wirklich löschen?");
}
</script>
<title>Zuordnung Studiengang - Dokumente</title>
</head>
@@ -167,7 +185,7 @@ if(isset($_GET['action']) && $_GET['action']=='dokumenttypen')
$dokument = new dokument();
if(!$dokument->deleteDokumenttyp($_GET['dokument_kurzbz']))
echo $dokument->errormsg;
}
}
if(isset($_POST['saveDokumenttyp']))
@@ -180,6 +198,22 @@ if(isset($_GET['action']) && $_GET['action']=='dokumenttypen')
else
$neu=false;
$bezeichnung_mehrsprachig=array();
foreach($sprache->result as $row_sprache)
{
if(isset($_POST['bezeichnung_mehrsprachig_'.$row_sprache->sprache]))
$bezeichnung_mehrsprachig[$row_sprache->sprache]=$_POST['bezeichnung_mehrsprachig_'.$row_sprache->sprache];
}
$dokument->bezeichnung_mehrsprachig = $bezeichnung_mehrsprachig;
$dokumentbeschreibung_mehrsprachig=array();
foreach($sprache->result as $row_sprache)
{
if(isset($_POST['dokumentbeschreibung_mehrsprachig_'.$row_sprache->sprache]))
$dokumentbeschreibung_mehrsprachig[$row_sprache->sprache]=$_POST['dokumentbeschreibung_mehrsprachig_'.$row_sprache->sprache];
}
$dokument->dokumentbeschreibung_mehrsprachig = $dokumentbeschreibung_mehrsprachig;
if(!$dokument->saveDokument($neu))
echo $dokument->errormsg;
}
@@ -188,7 +222,7 @@ if(isset($_GET['action']) && $_GET['action']=='dokumenttypen')
$dokument->getAllDokumente();
echo '
<form action="'.$_SERVER['PHP_SELF'].'?action=dokumenttypen" method="post">
<table id="t1" class="tablesorter" style="width:auto">
<thead>
<th></th>
@@ -203,7 +237,7 @@ if(isset($_GET['action']) && $_GET['action']=='dokumenttypen')
<td>
<a href="'.$_SERVER['PHP_SELF'].'?action=dokumenttypen&type=edit&dokument_kurzbz='.$row->dokument_kurzbz.'"><img src="../../skin/images/edit.png" title="Bearbeiten" /></a>
';
// Lichtbil und Zeugnis duerfen nicht geloescht werden da diese fuer Bildupload und
// Lichtbil und Zeugnis duerfen nicht geloescht werden da diese fuer Bildupload und
// Zeugnisarchivierung verwendet werden
if(!in_array($row->dokument_kurzbz,array('Lichtbil','Zeugnis')))
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=dokumenttypen&type=delete&dokument_kurzbz='.$row->dokument_kurzbz.'"><img src="../../skin/images/cross.png" title="Löschen" /></a>';
@@ -211,7 +245,7 @@ if(isset($_GET['action']) && $_GET['action']=='dokumenttypen')
echo '
</td>
<td>'.$row->dokument_kurzbz.'</td>
<td>'.$row->bezeichnung.'</td>
<td>'.$row->bezeichnung.'</td>
</tr>';
}
@@ -230,17 +264,49 @@ if(isset($_GET['action']) && $_GET['action']=='dokumenttypen')
echo '
</tbody>
<tfoot>
</table>
<form action="'.$_SERVER['PHP_SELF'].'?action=dokumenttypen" method="post">
<table>
<tr>
<td></td>
<td>Kurzbezeichnung</td>
<td>
<input typ="text" id="dokument_kurzbz" name="dokument_kurzbz" maxlength="8" size="8" '.($dokument_kurzbz!=''?'readonly':'').' value="'.$dokument_kurzbz.'"/>
<input type="hidden" id="neu" name="neu" value="'.($dokument_kurzbz==''?'true':'false').'" />
</td>
<td><input type="text" id="dokument_bezeichnung" name="dokument_bezeichnung" maxlength="128" value="'.$dokument_bezeichnung.'">
<input type="submit" name="saveDokumenttyp" value="Speichern"></td>
</tr>
</tfoot>
<tr>
<td>Bezeichnung</td>
<td>
<input type="text" id="dokument_bezeichnung" name="dokument_bezeichnung" size="50" maxlength="128" value="'.$dokument_bezeichnung.'">
</td>
</tr>
<tr>
<td>Bezeichnung Mehrsprachig</td>
<td></td>
</tr>';
foreach($sprache->result as $s)
{
echo '<tr><td>'.$s->sprache.'</td><td>';
echo '<input type="text" maxlength="128" size="50" name="bezeichnung_mehrsprachig_'.$s->sprache.'" value="'.(isset($dokument->bezeichnung_mehrsprachig[$s->sprache])?$db->convert_html_chars($dokument->bezeichnung_mehrsprachig[$s->sprache]):'').'" />';
}
echo '
</tr>
<tr>
<td>Dokumentbeschreibung Mehrsprachig</td>
<td></td>
</tr>';
foreach($sprache->result as $s)
{
echo '<tr><td>'.$s->sprache.'</td><td>';
echo '<textarea cols="50" name="dokumentbeschreibung_mehrsprachig_'.$s->sprache.'" >'.(isset($dokument->dokumentbeschreibung_mehrsprachig[$s->sprache])?$db->convert_html_chars($dokument->dokumentbeschreibung_mehrsprachig[$s->sprache]):'').'</textarea></td></tr>';
}
echo '
</tr>
<tr>
<td></td>
<td><input type="submit" name="saveDokumenttyp" value="Speichern"></td>
</tr>
</table>
</form>';
}
@@ -295,10 +361,21 @@ else
<td>'.$dok->bezeichnung.'</td>
<td><a href="'.$_SERVER['PHP_SELF'].'?action=toggleonline&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'"><img src="../../skin/images/'.$checked_onlinebewerbung.'.png" /></a></td>
<td><a href="'.$_SERVER['PHP_SELF'].'?action=togglepflicht&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'"><img src="../../skin/images/'.$checked_pflicht.'.png" /></a></td>
<td><a href="'.$_SERVER['PHP_SELF'].'?action=delete&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'">Zuordnung löschen</a></td>
<td>
<a href="'.$_SERVER['PHP_SELF'].'?action=edit&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'"><img src="../../skin/images/edit.png" title="Zuordnung bearbeiten" size="17px" /></a>
<a href="'.$_SERVER['PHP_SELF'].'?action=delete&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'" onclick="return confdel()"><img src="../../skin/images/delete.png" title="Zuordnung löschen" height="17px"/></a>
</td>
</td>
</tr>';
}
$dok = new dokument();
if($action=='edit')
{
if(!$dok->loadDokumentStudiengang($dokument_kurzbz, $stg_kz))
die('Failed to load:'.$dok->errormsg);
}
echo '
</tbody>
<tfoot>
@@ -306,18 +383,28 @@ else
<td><select name="dokument_kurzbz">';
$dokAll=new dokument();
$dokAll->getAllDokumente();
foreach($dokAll->result as $dok)
foreach($dokAll->result as $dok_row)
{
if(!in_array($dok->dokument_kurzbz,$zugewieseneDokumente))
echo '<option value="'.$dok->dokument_kurzbz.'">'.$dok->bezeichnung.'</option>';
if($dok->dokument_kurzbz==$dok_row->dokument_kurzbz)
echo '<option value="'.$dok_row->dokument_kurzbz.'" selected="selected">'.$dok_row->bezeichnung.'</option>';
elseif(!in_array($dok_row->dokument_kurzbz,$zugewieseneDokumente))
echo '<option value="'.$dok_row->dokument_kurzbz.'">'.$dok_row->bezeichnung.'</option>';
}
echo '</select></td>
<td><input type="checkbox" name="onlinebewerbung" checked></td>
<td>
<input type="hidden" name="pflicht" value="0">
<input type="checkbox" name="pflicht" value="1" checked>
echo '</select>';
echo '<table>';
foreach($sprache->result as $s)
{
echo '<tr><td>Beschreibung '.$s->sprache.'</td><td>';
echo '<textarea cols="50" name="beschreibung_mehrsprachig_'.$s->sprache.'" >'.(isset($dok->beschreibung_mehrsprachig[$s->sprache])?$db->convert_html_chars($dok->beschreibung_mehrsprachig[$s->sprache]):'').'</textarea></td></tr>';
}
echo '</table>';
echo '</td>
<td valign="top">
<input type="checkbox" name="onlinebewerbung" '.($dok->onlinebewerbung?'checked="checked"':'').'></td>
<td valign="top">
<input type="checkbox" name="pflicht" '.($dok->pflicht?'checked="checked"':'').'>
</td>
<td><input type="submit" name="add" value="Hinzufügen"></td>
<td valign="top"><input type="submit" name="add" value="Hinzufügen"></td>
</tr>
</tfoot>
</table>