Merge remote-tracking branch 'origin/master'

This commit is contained in:
Cris
2018-09-04 12:27:13 +02:00
20 changed files with 557 additions and 249 deletions
+4 -2
View File
@@ -166,7 +166,7 @@ $qry = 'SELECT
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student,
tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr
tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang
FROM
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid)
@@ -174,6 +174,7 @@ $qry = 'SELECT
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND
vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);
@@ -229,7 +230,8 @@ if($result = $db->db_query($qry))
'semester'=>$row->semester,
'verband'=>trim($row->verband),
'gruppe'=>trim($row->gruppe),
'zusatz'=>$zusatz
'zusatz'=>$zusatz,
'studiengang_kurzbz'=>$row->kurzbzlang
));
}
}
+22 -7
View File
@@ -32,9 +32,11 @@ require_once('../../../include/datum.class.php');
require_once('../../../include/note.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/studienordnung.class.php');
require_once('../../../include/lehrveranstaltung.class.php');
require_once('../../../include/pruefung.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/prestudent.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
@@ -47,11 +49,11 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
<title>'.$p->t('tools/leistungsbeurteilung').'</title>
@@ -118,7 +120,7 @@ if(!check_student($user))
}
else
{
$qry = "SELECT vw_student.vorname, vw_student.nachname, tbl_studiengang.studiengang_kz
$qry = "SELECT vw_student.vorname, vw_student.nachname, vw_student.prestudent_id, tbl_studiengang.studiengang_kz
FROM public.tbl_studiengang JOIN campus.vw_student USING (studiengang_kz)
WHERE campus.vw_student.uid = ".$db->db_add_param($user).";";
@@ -133,6 +135,19 @@ else
$stg_obj = new studiengang();
$stg_obj->load($row->studiengang_kz);
$stg_name = $stg_obj->bezeichnung_arr[$sprache];
$prestudent_id = $row->prestudent_id;
$prestudent = new prestudent($prestudent_id);
if ($prestudent->getLastStatus($prestudent_id))
{
$studienplan_id = $prestudent->studienplan_id;
$studienordnung = new studienordnung();
if ($studienordnung->getStudienordnungFromStudienplan($studienplan_id))
{
$studiengangbezeichnung_sto = $sprache === 'English' ? $studienordnung->__get('studiengangbezeichnung_englisch') : $studienordnung->__get('studiengangbezeichnung');
}
}
$studiengang_bezeichnung = empty($studiengangbezeichnung_sto) ? $stg_name : $studiengangbezeichnung_sto;
}
$notenarr=array();
@@ -152,7 +167,7 @@ else
echo "<br />";
echo "<b>".$p->t('global/name').":</b> $vorname $nachname<br />";
echo "<b>".$p->t('global/studiengang').":</b> $stg_name<br />";
echo "<b>".$p->t('global/studiengang').":</b> $studiengang_bezeichnung<br />";
echo "<b>".$p->t('global/studiensemester')."</b> <SELECT name='stsem' onChange=\"MM_jumpMenu('self',this,0)\">";
echo "<OPTION value='notenliste.php?stsem=alle".$getParam."'>alle Semester</OPTION>";
foreach ($stsem_obj->studiensemester as $semrow)
+162 -61
View File
@@ -46,7 +46,7 @@ $uid=get_uid();
if(isset($_GET['uid']))
{
// Administratoren duerfen die UID als Parameter uebergeben um die Notenliste
// Administratoren duerfen die UID als Parameter uebergeben um die Dokumente
// von anderen Personen anzuzeigen
$rechte = new benutzerberechtigung();
@@ -105,7 +105,7 @@ if(isset($_GET['action']) && $_GET['action']=='download')
echo '<!DOCTYPE HTML>
<html>
<head>
<title>'.$p->t('tools/dokumente').'</title>
<title>'.$p->t('tools/bestaetigungenZeugnisse').'</title>
<meta charset="UTF-8">
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">';
include('../../../include/meta/jquery.php');
@@ -113,25 +113,59 @@ echo '<!DOCTYPE HTML>
echo '
<script language="JavaScript" type="text/javascript">
$(document).ready(function()
$(document).ready(function()
{
$(".tablesorter").tablesorter(
{
$("#t1").tablesorter(
{
sortList: [[0,1]],
widgets: ["zebra"]
});
sortList: [[1,0]],
headers: { 0: { sorter: false }},
widgets: ["zebra"]
});
function changeSemester(obj)
$(".tablesorter2").tablesorter(
{
self.location = obj.options[obj.selectedIndex].value + "'.$getParam.'";
}
sortList: [[1,1]],
headers: { 0: { sorter: false }},
widgets: ["zebra"]
});
});
function changeSemester(obj)
{
self.location = obj.options[obj.selectedIndex].value + "'.$getParam.'";
};
function createStudienerfolg(stsem, language, finanzamtCheckboxId)
{
var finanzamt = document.getElementById(finanzamtCheckboxId).checked;
var xsl = "";
if (language == "en")
xsl = "StudienerfolgEng";
else
xsl = "Studienerfolg";
if(finanzamt)
finanzamt = "&typ=finanzamt";
else
finanzamt = "";
if(stsem == "alle")
alle = "&all=1";
else
alle = "";
window.location.href= "../pdfExport.php?xml=studienerfolg.rdf.php&xsl="+xsl+"&ss="+stsem+"&uid='.$uid.'"+finanzamt+alle;
};
</script>
<style>
table.tablesorter tbody td
{
padding: 4px;
{
</style>
</head>
<body>
<h1>'.$p->t('tools/dokumente').'</h1>
<h2>Bestätigungen</h2>';
<h1>'.$p->t('tools/bestaetigungenZeugnisse').'</h1>';
$prestudent = new prestudent();
$prestudent->getPrestudentRolle($student_studiengang->prestudent_id);
@@ -155,8 +189,13 @@ if($stsem == '')
$stsem_obj->getAll();
*/
echo $p->t('global/studiensemester');
echo ' <SELECT name="stsem" onChange="changeSemester(this)">';
echo ' <SELECT name="stsem" id="stsem" onChange="changeSemester(this)">';
if (!in_array($stsem, $stsem_arr))
{
echo '<OPTION value="dokumente.php?stsem='.$stsem.'" selected>';
echo $stsem;
echo '</OPTION>';
}
foreach ($stsem_arr as $semrow)
{
if ($stsem == $semrow)
@@ -174,61 +213,106 @@ foreach ($stsem_arr as $semrow)
}
echo '</SELECT><br /><br />';
$konto = new konto();
$buchungstypen = array();
if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN"))
{
$buchungstypen = unserialize (CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN);
}
$stsem_zahlung = $konto->getLastStSemBuchungstypen($uid, $buchungstypen, $stsem);
if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung)
{
$path = "../pdfExport.php?xsl=Inskription&xml=student.rdf.php&ss=".$stsem."&uid=".$uid."&xsl_stg_kz=".$xsl_stg_kz;
echo '<a href="'.$path.'">'.$p->t('tools/inskriptionsbestaetigung').'</a>';
echo ' - '.$p->t('tools/studienbeitragFuerSSBezahlt',array($stsem));
echo '<br /><br />';
}
else
{
echo $p->t('tools/inskriptionsbestaetigung');
echo ' - '.$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem));
echo '<br /><br />';
}
if (defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN)
// Wenn es für das übergebene Studiensemester keinen PreStudentStatus gibt, werden nur Abschlussdokumente angezeigt
if (in_array($stsem, $stsem_arr))
{
$konto = new konto();
$buchungstypen = array();
if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN"))
{
$buchungstypen = unserialize (CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN);
}
echo '<h2>' . $p->t('tools/inskriptionsbestaetigung') . '</h2>';
$stsem_zahlung = $konto->getLastStSemBuchungstypen($uid, $buchungstypen, $stsem);
echo '<table class="tablesorter" style="width:auto;">
<thead>
<tr>
<th></th>
<th>'.$p->t('global/name').'</th>
</tr>
</thead>
<tbody><tr>';
if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung)
{
$pfad = "../pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&ss=".$stsem."&uid=".$uid;
echo '<a href="'.$pfad.'">'.$p->t('tools/studienbuchblatt').'</a>';
echo ' - '.$p->t('tools/studienbeitragFuerSSBezahlt',array($stsem));
$path = "../pdfExport.php?xsl=Inskription&xml=student.rdf.php&ss=".$stsem."&uid=".$uid."&xsl_stg_kz=".$xsl_stg_kz;
echo '<td><img src="../../../skin/images/pdfpic.gif" /></td>';
echo '<td><a href="'.$path.'">'.$p->t('tools/inskriptionsbestaetigung').' '.$stsem.'</a></td>';
}
else
echo $p->t('tools/studienbuchblatt')." - ".$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem));
echo '<br /><br />';
{
echo '<td colspan="2">'.$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)).'</td>';
}
echo '</tr></tbody></table>';
if (defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN)
{
echo '<h2>' . $p->t('tools/studienbuchblatt') . '</h2>';
echo '<table class="tablesorter" style="width:auto;">
<thead>
<tr>
<th></th>
<th>'.$p->t('global/name').'</th>
</tr>
</thead>
<tbody><tr>';
if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung)
{
$pfad = "../pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&ss=".$stsem."&uid=".$uid;
echo '<td><img src="../../../skin/images/pdfpic.gif" /></td>';
echo '<td><a href="'.$pfad.'">'.$p->t('tools/studienbuchblatt').' '.$stsem.'</a></td>';
}
else
{
echo '<td colspan="2">'.$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)).'</td>';
}
echo '</tr></tbody></table>';
}
if (defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN)
{
echo '<h2>' . $p->t('tools/studienerfolgsbestaetigung') . '</h2>';
echo '<table class="tablesorter" style="width:auto;">
<thead>
<tr>
<th></th>
<th>'.$p->t('global/name').'</th>
<th></th>
</tr>
</thead>
<tbody>';
echo '<tr><td><img src="../../../skin/images/pdfpic.gif" /></td>';
echo '<td><a href="#" onclick="createStudienerfolg(\''.$stsem.'\', \'de\', \'finanzamtDeutschStudiensemester\')">'.$p->t('tools/studienerfolgsbestaetigung').' '.$stsem.' '.$p->t('global/deutsch').'</a></td>';
echo '<td><input type="checkbox" id="finanzamtDeutschStudiensemester"> '.$p->t('tools/vorlageWohnsitzfinanzamt').'</td></tr>';
echo '<tr><td><img src="../../../skin/images/pdfpic.gif" /></td>';
echo '<td><a href="#" onclick="createStudienerfolg(\'alle\', \'de\', \'finanzamtDeutschAlle\')">'.$p->t('tools/studienerfolgsbestaetigung').' '.$p->t('tools/alleStudiensemester').' '.$p->t('global/deutsch').'</a></td>';
echo '<td><input type="checkbox" id="finanzamtDeutschAlle"> '.$p->t('tools/vorlageWohnsitzfinanzamt').'</td></tr>';
echo '<tr><td><img src="../../../skin/images/pdfpic.gif" /></td>';
echo '<td><a href="#" onclick="createStudienerfolg(\''.$stsem.'\', \'en\', \'finanzamtEnglishStudiensemester\')">'.$p->t('tools/studienerfolgsbestaetigung').' '.$stsem.' '.$p->t('global/englisch').'</a></td>';
echo '<td><input type="checkbox" id="finanzamtEnglishStudiensemester"> '.$p->t('tools/vorlageWohnsitzfinanzamt').'</td></tr>';
echo '<tr><td><img src="../../../skin/images/pdfpic.gif" /></td>';
echo '<td><a href="#" onclick="createStudienerfolg(\'alle\', \'en\', \'finanzamtEnglishAlle\')">'.$p->t('tools/studienerfolgsbestaetigung').' '.$p->t('tools/alleStudiensemester').' '.$p->t('global/englisch').'</a></td>';
echo '<td><input type="checkbox" id="finanzamtEnglishAlle"> '.$p->t('tools/vorlageWohnsitzfinanzamt').'</td></tr>';
echo '</tbody></table>';
}
}
if (defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN)
{
echo "<a href='studienerfolgsbestaetigung.php?".$getParam."' class='Item'>".$p->t('tools/studienerfolgsbestaetigung')." Deutsch</a><br>";
echo "<a href='studienerfolgsbestaetigung.php?lang=en".$getParam."' class='Item'>".$p->t('tools/studienerfolgsbestaetigung')." Englisch</a>";
echo "<br />";
}
echo "<br />";
else
echo '<p class="error">'.$p->t('tools/keinStatusImStudiensemester',array($stsem)).'</p>';
$akte = new akte();
if($akte->getArchiv($student_studiengang->person_id, true, true) && count($akte->result)>0)
echo '<h2>' . $p->t('tools/abschlussdokumente') . '</h2>';
if($akte->getArchiv($student_studiengang->person_id, null, true) && count($akte->result)>0)
{
echo '
<h2>Abschlussdokumente</h2>
<table id="t1" style="width:auto;">
<table class="tablesorter2" style="width:auto;">
<thead>
<tr>
<th>Erstelldatum</th>
<th>Dokument</th>
<th></th>
<th>'.$p->t('tools/erstelldatum').'</th>
<th>'.$p->t('tools/dokument').'</th>
</tr>
</thead>
<tbody>
@@ -240,13 +324,30 @@ if($akte->getArchiv($student_studiengang->person_id, true, true) && count($akte-
{
$pfad = 'dokumente.php?action=download&id='.$row->akte_id.'&uid='.$uid;
echo '<tr>';
echo '<td><img src="../../../skin/images/pdfpic.gif" /></td>';
echo '<td>'.$datum_obj->formatDatum($row->erstelltam,'d.m.Y').'</td>';
echo '<td><a href="'.$pfad.'"><img src="../../../skin/images/pdfpic.gif" /> '.$row->bezeichnung.'</a></td>';
echo '<td><a href="'.$pfad.'">'.$row->bezeichnung.'</a></td>';
echo '</tr>';
}
echo '</tbody></table>';
}
else
{
echo '
<table class="tablesorter2" style="width:auto;">
<thead>
<tr>
<th></th>
<th>'.$p->t('tools/erstelldatum').'</th>
<th>'.$p->t('tools/dokument').'</th>
</tr>
</thead>
<tbody>
';
echo '<td colspan="3">'.$p->t('tools/nochKeineAbschlussdokumenteVorhanden').'</td>';
echo '</tbody></table>';
}
echo '</body>
</html>
';
+16 -1
View File
@@ -25,6 +25,7 @@ require_once('../../../config/global.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/globals.inc.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/studienordnung.class.php');
require_once('../../../include/person.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/betriebsmittel.class.php');
@@ -34,6 +35,7 @@ require_once('../../../include/phrasen.class.php');
require_once('../../../include/betriebsmittel_betriebsmittelstatus.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/prestudent.class.php');
require_once('../../../include/student.class.php');
require_once('../../../include/kontakt.class.php');
require_once('../../../include/fotostatus.class.php');
@@ -291,8 +293,21 @@ if ($type == 'student' && (!defined('CIS_PROFIL_STUDIENINFORMATION_ANZEIGEN') ||
{
$studiengang->load($user->studiengang_kz);
$prestudent = new prestudent($user->prestudent_id);
if ($prestudent->getLastStatus($user->prestudent_id))
{
$studienplan_id = $prestudent->studienplan_id;
$studienordnung = new studienordnung();
if ($studienordnung->getStudienordnungFromStudienplan($studienplan_id))
{
$studiengangbezeichnung_sto = $studienordnung->__get('studiengangbezeichnung');
}
}
$studiengang_bezeichnung = empty($studiengangbezeichnung_sto) ? $studiengang->bezeichnung : $studiengangbezeichnung_sto;
echo "
".$p->t('global/studiengang').": $studiengang->bezeichnung<br>
".$p->t('global/studiengang').": $studiengang_bezeichnung<br>
".$p->t('global/semester').": $user->semester <a href='#' onClick='javascript:window.open(\"../stud_in_grp.php?kz=$user->studiengang_kz&sem=$user->semester\",\"_blank\",\"width=600,height=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes, resizable=1\");return false;'>".$p->t('benotungstool/liste')."</a><br>
".$p->t('global/verband').": $user->verband ".($user->verband!=' '?"<a href='#' onClick='javascript:window.open(\"../stud_in_grp.php?kz=$user->studiengang_kz&sem=$user->semester&verband=$user->verband\",\"_blank\",\"width=600,height=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes, resizable=1\");return false;'>".$p->t('benotungstool/liste')."</a>":"")."<br>
".$p->t('global/gruppe').": $user->gruppe ".($user->gruppe!=' '?"<a href='#' onClick='javascript:window.open(\"../stud_in_grp.php?kz=$user->studiengang_kz&sem=$user->semester&verband=$user->verband&grp=$user->gruppe\",\"_blank\",\"width=600,height=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes, resizable=1\");return false;'>".$p->t('benotungstool/liste')."</a>":"")."<br>";
@@ -1,114 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/basis_db.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
$uid=get_uid();
if(isset($_GET['uid']))
{
// Administratoren duerfen die UID als Parameter uebergeben um die Studienerfolgsbestätigung
// von anderen Personen anzuzeigen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if($rechte->isBerechtigt('admin'))
$uid=$_GET['uid'];
}
if(isset($_GET['lang']) && $_GET['lang']=='en')
$xsl = 'StudienerfolgEng';
else
$xsl = 'Studienerfolg';
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>'.$p->t('tools/studienerfolgsbestaetigung').'</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/javascript">
function createStudienerfolg()
{
var stsem = document.getElementById("stsem").value;
var finanzamt = document.getElementById("finanzamt").checked;
if(finanzamt)
finanzamt = "&typ=finanzamt";
else
finanzamt = "";
if(stsem == "alle")
alle = "&all=1";
else
alle = "";
window.location.href= "../pdfExport.php?xml=studienerfolg.rdf.php&xsl='.$xsl.'&ss="+stsem+"&uid='.$uid.'"+finanzamt+alle;
}
</script>
</head>
<body>
<h1>'.$p->t('tools/studienerfolgsbestaetigung').'</h1>
<br>'.$p->t('tools/studiensemesterAuswaehlen').'<br><br>';
$qry = "SELECT distinct studiensemester_kurzbz FROM campus.vw_student JOIN public.tbl_prestudentstatus USING(prestudent_id) WHERE uid='".addslashes($uid)."'";
if($result = $db->db_query($qry))
{
echo $p->t('global/studiensemester').': <SELECT id="stsem">';
echo '<OPTION value="alle">alle Semester</OPTION>';
$stsem_obj = new studiensemester();
$stsem = $stsem_obj->getPrevious();
while($row = $db->db_fetch_object($result))
{
if($stsem==$row->studiensemester_kurzbz)
$selected = 'selected';
else
$selected = '';
echo '<OPTION value="'.$row->studiensemester_kurzbz.'" '.$selected.'>'.$row->studiensemester_kurzbz.'</OPTION>';
}
echo '</SELECT>';
echo '<br><br><INPUT type="checkbox" id="finanzamt">'.$p->t('tools/vorlageWohnsitzfinanzamt').'<br>';
echo '<br><br><INPUT type="button" value="'.$p->t('global/erstellen').'" onclick="createStudienerfolg()" />';
}
echo '
</body>
</html>';
?>
+64 -8
View File
@@ -91,22 +91,27 @@ $fieldheadings = array(
if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung'))
{
$za_simple = 0;
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde', 'Ersatzruhe');
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
}
else
{
$za_simple = 1;
$activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde', 'Ersatzruhe');
$activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
}
$activities_str = "'".implode("','", $activities)."'";
// definiert bis zu welchem Datum die Eintragung nicht mehr möglich ist
if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS != '')
$zasperre = new zeitaufzeichnung();
if ($sperrdat = $zasperre->getEintragungGesperrtBisForUser($user))
$gesperrt_bis = $sperrdat;
else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS != '')
$gesperrt_bis = CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS;
else
$gesperrt_bis = '2015-08-31';
//var_dump($gesperrt_bis);
$sperrdatum = date('c', strtotime($gesperrt_bis));
// Uses urlencode to avoid XSS issues
@@ -415,9 +420,13 @@ echo '
bisDatum=Jahr+\'\'+Monat+\'\'+Tag+\'\'+Stunde+\'\'+Minute;
diff=bisDatum-vonDatum;
a = document.getElementById("aktivitaet");
akt = a.options[a.selectedIndex].value;
//alert(akt);
if (bisDatum>vonDatum)
{
if (diff>9999)
if (diff>9999 && akt != "DienstreiseMT")
{
Check = confirm("'.$p->t("zeitaufzeichnung/zeitraumAuffallendHoch").'");
document.getElementById("bis_datum").focus();
@@ -741,7 +750,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
// An der FHTW wird ins Moodle verlinkt
if (CAMPUS_NAME == 'FH Technikum Wien')
echo '<p><a href="https://moodle.technikum-wien.at/course/view.php?id=6251" target="_blank">'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'</a></p>';
else
else
echo '<p><a href="../../../cms/dms.php?id='.$p->t("dms_link/handbuchZeitaufzeichnung").'" target="_blank">'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'</a></p>';
}
if ($p->t("dms_link/fiktiveNormalarbeitszeit")!='')
@@ -904,7 +913,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
// $qry = "SELECT * FROM fue.tbl_aktivitaet where sort != 5 or sort is null ORDER by sort,beschreibung";
if($result = $db->db_query($qry))
{
echo '<SELECT name="aktivitaet">';
echo '<SELECT name="aktivitaet" id="aktivitaet">';
if ($za_simple == 0)
echo '<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
//else
@@ -1077,6 +1086,11 @@ if($projekt->getProjekteMitarbeiter($user, true))
}
$summe=0;
$dr = new zeitaufzeichnung();
$dr->getDienstreisenUser($user);
$dr_arr = $dr->result;
//var_dump($dr->result);
if(count($za->result)>0)
{
@@ -1108,6 +1122,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
$wochensaldo = '00:00';
$pflichtpause = false;
foreach($za->result as $row)
{
$datumtag = $datum_obj->formatDatum($row->datum, 'Y-m-d');
@@ -1119,6 +1134,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
$tag = $datumtag;
if($tag!=$datumtag)
{
//if ($row->uid)
//{
if ($datum->formatDatum($tag,'N') == '6' || $datum->formatDatum($tag,'N') == '7')
@@ -1188,9 +1204,11 @@ if($projekt->getProjekteMitarbeiter($user, true))
<td '.$style.' align="right"><b>'.$tagessaldo.$erstr.'</b><br>'.date('H:i', ($pausesumme-3600)).'</td>
<td '.$style.' colspan="3" align="right">';
if ($tag > $sperrdatum)
echo '<a href="?von_datum='.$datum->formatDatum($tag,'d.m.Y').'&bis_datum='.$datum->formatDatum($tag,'d.m.Y').'" class="item">&lt;-</a>';
echo '<a href="?von_datum='.$datum->formatDatum($tag,'d.m.Y').'&bis_datum='.$datum->formatDatum($tag,'d.m.Y').'" class="item">&lt;-</a>';
echo '</td></tr>';
echo '</td>';
$tag=$datumtag;
$tagessumme='00:00';
@@ -1207,6 +1225,9 @@ if($projekt->getProjekteMitarbeiter($user, true))
//{
// echo '<tr><td style="background-color:#DCE4EF; font-size: 8pt;" colspan="13"><b>'.$datum->formatDatum($row->datum,'D d.m.Y').'</b></b> <span id="tag_'.$datum->formatDatum($row->datum,'d_m_Y').'"></span></td></tr>';
//}
}
// Nach jeder Woche eine Summenzeile einfuegen und eine neue Tabelle beginnen
$datumwoche = $datum_obj->formatDatum($row->datum, 'W');
@@ -1251,6 +1272,37 @@ if($projekt->getProjekteMitarbeiter($user, true))
$ersumme = '00:00';
$ersumme_woche = '00:00';
}
// Diestreisen NEU
if (array_key_exists($datumtag, $dr_arr))
{
$colspan=($za_simple)?4:7;
echo '<tr style="background-color: #aabb99"><td colspan="'.$colspan.'">'.$p->t('zeitaufzeichnung/dienstreise');
if (array_key_exists('start', $dr_arr[$datumtag]) && !array_key_exists('ende', $dr_arr[$datumtag]))
echo ' '.$p->t('global/beginn');
if (array_key_exists('ende', $dr_arr[$datumtag]) && !array_key_exists('start', $dr_arr[$datumtag]))
echo ' '.$p->t('global/ende');
echo '</td>';
echo '<td>';
if (array_key_exists('start', $dr_arr[$datumtag]))
echo $dr_arr[$datumtag]['start'];
echo '</td><td>';
if (array_key_exists('ende', $dr_arr[$datumtag]))
echo $dr_arr[$datumtag]['ende'];
echo '</td>';
echo '<td colspan="2"></td>';
echo '<td>';
// if(!isset($_GET['filter']) && ($datumtag > $sperrdatum))
// echo '<a href="'.$_SERVER['PHP_SELF'].'?type=edit&zeitaufzeichnung_id='.$dr_arr[$datumtag]['id'].'" class="Item">'.$p->t("global/bearbeiten").'</a>';
echo "</td>\n";
echo "<td>";
if(!isset($_GET['filter']) && ($datumtag > $sperrdatum))
echo '<a href="'.$_SERVER['PHP_SELF'].'?type=delete&zeitaufzeichnung_id='.$dr_arr[$datumtag]['id'].'" class="Item" onclick="return confdel()">'.$p->t("global/loeschen").'</a>';
echo "</td>\n";
echo '</tr>';
unset($dr_arr[$datumtag]);
}
if ($row->uid)
{
$wochensumme = $datum_obj->sumZeit($wochensumme, $row->diff);
@@ -1314,8 +1366,11 @@ if($projekt->getProjekteMitarbeiter($user, true))
if ($row->aktivitaet_kurzbz == 'LehreExtern')
$extlehrearr[] = array("start"=>$row->start, "ende"=>$row->ende, "diff"=>$row->diff);
}
}
echo '';
if ($alle===false)
{
echo '
@@ -1456,4 +1511,5 @@ function getZeitaufzeichnung($user, $von, $bis)
$za->getListeUserFromTo($user, $von, $bis);
return $za;
}
?>
+1 -5
View File
@@ -60,12 +60,8 @@ if(isset($_POST['submitbild']))
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
if(!chgrp($uploadfile,'dms'))
echo 'CHGRP failed';
if(!chmod($uploadfile, 0774))
echo 'CHMOD failed';
$dms = new dms();
$dms->setPermission($uploadfile);
$dms->version='0';
$dms->kategorie_kurzbz=$kategorie_kurzbz;
@@ -81,7 +81,7 @@ if(count($stg->result)>0)
}
}
//Studiengaenge ermitteln bei denen sich die lektorzuordnung innerhalb der letzten 31 Tage geaendert haben
$qry_stg = "SELECT distinct studiengang_kz
$qry_stg = "SELECT distinct studiengang_kz, typ, kurzbz
FROM (
SELECT
studiengang_kz
@@ -105,10 +105,13 @@ $qry_stg = "SELECT distinct studiengang_kz
tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
) as foo
JOIN public.tbl_studiengang USING (studiengang_kz)
";
if(count($stg_arr)>0)
$qry_stg.=" WHERE studiengang_kz in (".$db->db_implode4SQL($stg_arr).")";
$qry_stg.=" ORDER BY typ, kurzbz";
$liste_gesamt = array();
$gesamt =& $workbook->addWorksheet('Gesamt');
@@ -152,6 +155,8 @@ if($result_stg = $db->db_query($qry_stg))
$i=0;
$gesamtsheet_row++;
$gesamt->write(0,0,'', $format_colored);
$gesamt->write(0,1,'Kennzeichnet Änderungen am Lehrauftrag innerhalb der letzten 31 Tage', $format_normal);
$worksheet->write(0,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold);
$gesamt->write($gesamtsheet_row,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold);
$gesamtsheet_row+=2;
@@ -166,6 +171,8 @@ if($result_stg = $db->db_query($qry_stg))
$gesamt->write($gesamtsheet_row,$i,"Vorname", $format_bold);
$worksheet->write(2,++$i,"Familienname", $format_bold);
$gesamt->write($gesamtsheet_row,$i,"Familienname", $format_bold);
$worksheet->write(2,++$i,"Fixangestellt", $format_bold);
$gesamt->write($gesamtsheet_row,$i,"Fixangestellt", $format_bold);
$worksheet->write(2,++$i,"LV-Stunden", $format_bold);
$gesamt->write($gesamtsheet_row,$i,"LV-Stunden", $format_bold);
$worksheet->write(2,++$i,"LV-Kosten", $format_bold);
@@ -185,6 +192,7 @@ if($result_stg = $db->db_query($qry_stg))
tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid,
tbl_lehreinheitmitarbeiter.faktor as faktor, tbl_lehreinheitmitarbeiter.stundensatz as stundensatz,
tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden,
CASE WHEN tbl_mitarbeiter.fixangestellt = true THEN 'Ja' ELSE 'Nein' END as fixangestellt,
CASE WHEN COALESCE(tbl_lehreinheitmitarbeiter.updateamum, tbl_lehreinheitmitarbeiter.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert
FROM
lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_mitarbeiter,
@@ -228,6 +236,7 @@ if($result_stg = $db->db_query($qry_stg))
$liste[$row->mitarbeiter_uid]['titelpre'] = $row->titelpre;
$liste[$row->mitarbeiter_uid]['vorname'] = $row->vorname;
$liste[$row->mitarbeiter_uid]['nachname'] = $row->nachname;
$liste[$row->mitarbeiter_uid]['fixangestellt'] = $row->fixangestellt;
$liste[$row->mitarbeiter_uid]['betreuergesamtstunden'] = 0;
$liste[$row->mitarbeiter_uid]['betreuergesamtkosten'] = 0;
if($row->geaendert=='t')
@@ -236,7 +245,7 @@ if($result_stg = $db->db_query($qry_stg))
//Alle holen die eine Betreuung aber keinen Lehrauftrag haben
$qry = "SELECT
distinct personalnummer, titelpre, vorname, nachname, uid
distinct personalnummer, titelpre, vorname, nachname, uid, CASE WHEN fixangestellt = true THEN 'Ja' ELSE 'Nein' END as fixangestellt
FROM
lehre.tbl_projektbetreuer, public.tbl_person, public.tbl_benutzer,
public.tbl_mitarbeiter, lehre.tbl_projektarbeit, lehre.tbl_lehreinheit,
@@ -276,6 +285,7 @@ if($result_stg = $db->db_query($qry_stg))
$liste[$row->uid]['titelpre'] = $row->titelpre;
$liste[$row->uid]['vorname'] = $row->vorname;
$liste[$row->uid]['nachname'] = $row->nachname;
$liste[$row->uid]['fixangestellt'] = $row->fixangestellt;
$liste[$row->uid]['geaendert']=false;
$liste[$row->uid]['gesamtstunden'] = 0;
$liste[$row->uid]['gesamtkosten'] = 0;
@@ -290,7 +300,10 @@ if($result_stg = $db->db_query($qry_stg))
//Betreuungen fuer Projektarbeiten
foreach ($liste as $uid=>$arr)
{
$qry = "SELECT tbl_projektbetreuer.faktor, tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz, CASE WHEN COALESCE(tbl_projektbetreuer.updateamum, tbl_projektbetreuer.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert
$qry = "SELECT tbl_projektbetreuer.faktor,
tbl_projektbetreuer.stunden,
tbl_projektbetreuer.stundensatz,
CASE WHEN COALESCE(tbl_projektbetreuer.updateamum, tbl_projektbetreuer.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert
FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student
WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid=".$db->db_add_param($uid)." AND
@@ -354,6 +367,9 @@ if($result_stg = $db->db_query($qry_stg))
//Nachname
$worksheet->write($zeile,++$i,$row['nachname'], $format);
$gesamt->write($gesamtsheet_row,$i,$row['nachname'], $format);
//Fixangestellt
$worksheet->write($zeile,++$i,$row['fixangestellt'], $format);
$gesamt->write($gesamtsheet_row,$i,$row['fixangestellt'], $format);
//LVStunden
$lvstunden = str_replace(',', '.', $row['lvstunden']);
$worksheet->write($zeile,++$i,$lvstunden, $format);
@@ -401,8 +417,8 @@ if($result_stg = $db->db_query($qry_stg))
}
//Gesamtkosten anzeigen
$worksheet->writeNumber($zeile,10,$gesamtkosten, $format_number_bold);
$gesamt->writeNumber($gesamtsheet_row,10,$gesamtkosten, $format_number_bold);
$worksheet->writeNumber($zeile,11,$gesamtkosten, $format_number_bold);
$gesamt->writeNumber($gesamtsheet_row,11,$gesamtkosten, $format_number_bold);
}
}
@@ -94,7 +94,7 @@ $format_title->setAlign('merge');
//Zeilenueberschriften ausgeben
$i = 0;
$zeile = 1;
$zeile = 0;
$worksheet->write($zeile, $i, "ANREDE", $format_bold);
$maxlength[$i] = 6;
@@ -108,10 +108,8 @@ $worksheet->write($zeile, ++$i, "TITELPOST", $format_bold);
$maxlength[$i] = 9;
$worksheet->write($zeile, ++$i, "EMail Privat", $format_bold);
$maxlength[$i] = 12;
$worksheet->write($zeile,++$i,"STRASSE", $format_bold);
$maxlength[$i]=7;
$worksheet->write($zeile-1,$i,"Zustelladresse", $format_bold);
$maxlength[$i]=14;
$worksheet->write($zeile,++$i,"STRASSE (Zustelladresse)", $format_bold);
$maxlength[$i]=12;
$worksheet->write($zeile,++$i,"PLZ", $format_bold);
$maxlength[$i]=3;
$worksheet->write($zeile,++$i,"ORT", $format_bold);
@@ -158,7 +156,7 @@ $maxlength[$i] = 16;
$worksheet->write($zeile, ++$i, "STATUS", $format_bold);
$maxlength[$i] = 6;
$worksheet->write($zeile, ++$i, "STATI IN ANDEREN STUDIENGÄNGEN", $format_bold);
$worksheet->write($zeile, ++$i, "STATUS IN ANDEREN STUDIENGÄNGEN", $format_bold);
$maxlength[$i] = 8;
$worksheet->write($zeile, ++$i, "EMail Intern", $format_bold);
$maxlength[$i] = 12;
+14 -9
View File
@@ -1233,15 +1233,20 @@ class betriebsmittel extends basis_db
if($result = $this->db_query($qry))
{
$ausgegeben_am = '';
while($row = $this->db_fetch_object($result))
{
if(empty($ausgegeben_am) || (!empty($ausgegeben_am) && $ausgegeben_am < $row->ausgegebenam))
$ausgegeben_am = $row->ausgegebenam;
}
//return latest issue date
$this->result = $ausgegeben_am;
return true;
if($this->db_num_rows($result) > 0)
{
$ausgegeben_am = '';
while($row = $this->db_fetch_object($result))
{
if(empty($ausgegeben_am) || (!empty($ausgegeben_am) && $ausgegeben_am < $row->ausgegebenam))
$ausgegeben_am = $row->ausgegebenam;
}
//return latest issue date
$this->result = $ausgegeben_am;
return true;
}
else
return false;
}
else
{
+22 -1
View File
@@ -33,6 +33,7 @@ class filter extends basis_db
//Tabellenspalten
protected $filter_id; // integer (PK)
protected $kurzbz; // varchar(32) unique
protected $bezeichnung; // varchar(64) (label shown before filter dropdown)
protected $sql; // text
protected $valuename; // varchar(32)
protected $showvalue; // boolean (should the value be showed in the input widget
@@ -85,6 +86,7 @@ class filter extends basis_db
{
$this->filter_id=$row->filter_id;
$this->kurzbz=$row->kurzbz;
$this->bezeichnung=$row->bezeichnung;
$this->sql=$row->sql;
$this->valuename=$row->valuename;
$this->showvalue=$this->db_parse_bool($row->showvalue);
@@ -125,6 +127,7 @@ class filter extends basis_db
$obj->filter_id=$row->filter_id;
$obj->kurzbz=$row->kurzbz;
$obj->bezeichnung=$row->bezeichnung;
$obj->sql=$row->sql;
$obj->valuename=$row->valuename;
$obj->showvalue = $this->db_parse_bool($row->showvalue);
@@ -164,6 +167,22 @@ class filter extends basis_db
return false;
}
/**
* Filter Bezeichnung des Filters mit einer gegebenen kurzbz holen
* @param $kurzbz kurzbz des Datensatzes, der gefunden werden soll
* @return string|boolean Bezeichnung wenn kurzbz gefunden, false andernfalls
*/
public function getBezeichnungFromKurzbz($kurzbz)
{
foreach ($this->result as $filter)
{
if ($filter->kurzbz==$kurzbz)
return $filter->__get('bezeichnung');
}
return false;
}
/**
* Ausgabe des HTML Widgets
* @param kurzbz des Datensatzes, der gefunden werden soll
@@ -304,9 +323,10 @@ class filter extends basis_db
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO public.tbl_filter (kurzbz, sql, valuename,
$qry='INSERT INTO public.tbl_filter (kurzbz, bezeichnung, sql, valuename,
showvalue, type, htmlattr, insertamum, insertvon) VALUES ('.
$this->db_add_param($this->kurzbz).', '.
$this->db_add_param($this->bezeichnung).', '.
$this->db_add_param($this->sql).', '.
$this->db_add_param($this->valuename).', '.
$this->db_add_param($this->showvalue, FHC_BOOLEAN).', '.
@@ -326,6 +346,7 @@ class filter extends basis_db
$qry='UPDATE public.tbl_filter SET'.
' kurzbz='.$this->db_add_param($this->kurzbz).', '.
' bezeichnung='.$this->db_add_param($this->bezeichnung).', '.
' sql='.$this->db_add_param($this->sql).', '.
' valuename='.$this->db_add_param($this->valuename).', '.
' showvalue='.$this->db_add_param($this->showvalue, FHC_BOOLEAN).', '.
+31
View File
@@ -1259,4 +1259,35 @@ class reihungstest extends basis_db
return false;
}
}
/**
* Prueft ob eine Person-Reihungstest-Studienplan zuteilung existiert (Muss in der DB unique sein)
* @param int $person_id ID der Person.
* @param int $rt_id ID des Reihungstests.
* @param int $studienplan_id Studienplan ID.
* @return boolean true wenn vorhanden, false wenn nicht oder im Fehlerfall
*/
public function checkPersonRtStudienplanExists($person_id, $rt_id, $studienplan_id)
{
$qry = "SELECT
*
FROM
public.tbl_rt_person
WHERE
tbl_rt_person.person_id=".$this->db_add_param($person_id)."
AND tbl_rt_person.rt_id=".$this->db_add_param($rt_id)."
AND tbl_rt_person.studienplan_id=".$this->db_add_param($studienplan_id);
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;
}
}
}
+102 -1
View File
@@ -487,7 +487,7 @@ class zeitaufzeichnung extends basis_db
$where = "uid=".$this->db_add_param($user);
if ($days!='')
$where.= " AND ende>(now() - INTERVAL '".$days." days')";
$where_join = "and z.uid=".$this->db_add_param($user);
$where_join = "and (z.aktivitaet_kurzbz != 'DienstreiseMT' or z.aktivitaet_kurzbz is null) and z.uid=".$this->db_add_param($user);
if ($days!='')
$where_join.= " AND z.ende>(now() - INTERVAL '".$days." days')";
if ($days=='')
@@ -540,6 +540,64 @@ class zeitaufzeichnung extends basis_db
}
}
/**
* Laedt die Zeitaufzeichnungen eines Users aufgefüllt mit lehren Tagen.
* Default: Die letzten 40 Tage
* @param string $user
* @param integer $days deafult: 40 Tage
*/
public function getDienstreisenUser($user, $days='40')
{
$where = "uid=".$this->db_add_param($user);
if ($days!='')
$where.= " AND ende>(now() - INTERVAL '".$days." days')";
$where .= " AND aktivitaet_kurzbz = 'DienstreiseMT'";
$qry = "SELECT
zeitaufzeichnung_id, start::date as starttag, TO_CHAR(start, 'HH24:MI') as startzeit, ende::date as endtag, TO_CHAR(ende, 'HH24:MI') as endzeit
FROM campus.tbl_zeitaufzeichnung
where $where
ORDER BY ende DESC
";
if($result = $this->db_query($qry))
{
$dr_arr = array();
while($row = $this->db_fetch_object($result))
{
if (array_key_exists($row->starttag, $dr_arr))
{
$dr_arr[$row->starttag]['start'] = $row->startzeit;
$dr_arr[$row->starttag]['id'] = $row->zeitaufzeichnung_id;
}
else
{
$dr_arr[$row->starttag] = array();
$dr_arr[$row->starttag]['start'] = $row->startzeit;
$dr_arr[$row->starttag]['id'] = $row->zeitaufzeichnung_id;
}
if (array_key_exists($row->endtag, $dr_arr))
{
$dr_arr[$row->endtag]['ende'] = $row->endzeit;
$dr_arr[$row->endtag]['id'] = $row->zeitaufzeichnung_id;
}
else
{
$dr_arr[$row->endtag] = array();
$dr_arr[$row->endtag]['ende'] = $row->endzeit;
$dr_arr[$row->endtag]['id'] = $row->zeitaufzeichnung_id;
}
$this->result = $dr_arr;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Löscht sämtliche Einträge eines Users für einen Tag
* @param string $user
@@ -684,5 +742,48 @@ or not exists
return $lehre_arr;
}
/**
* Holt das Datum bis zu dem die Eintragung für einen bestimmten User gesperrt ist
* @param string $user
* @return string $tag Y-m-d or false
*/
public function getEintragungGesperrtBisForUser($user)
{
//check if addon casetime is installed
$qrytable = "
SELECT EXISTS(
SELECT *
FROM information_schema.tables
WHERE
table_schema = 'addon' AND
table_name = 'tbl_casetime_timesheet'
);
";
$res = $this->db_query($qrytable);
if ($this->db_fetch_row($res)[0]===true)
{
//check if sent timesheets for the UID exist
$where = "uid=".$this->db_add_param($user);
$qry = "select max(datum) from addon.tbl_casetime_timesheet where ".$where." and abgeschicktamum is not null";
if($result = $this->db_query($qry))
{
$datum = $this->db_fetch_object($result);
return $datum->max;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
?>
+11
View File
@@ -2,6 +2,9 @@
//Dokumente
$this->phrasen['tools/dokumente']='Dokumente';
$this->phrasen['tools/dokument']='Dokument';
$this->phrasen['tools/erstelldatum']='Erstelldatum';
$this->phrasen['tools/bestaetigungenZeugnisse']='Bestätigungen/Zeugnisse';
$this->phrasen['tools/inskriptionsbestaetigung']='Inskriptionsbestätigung';
$this->phrasen['tools/studienbeitragFuerSSBezahlt']='Studienbeitrag für das %1$s bezahlt';
$this->phrasen['tools/studienbeitragFuerSSNochNichtBezahlt']='Studienbeitrag für das %1$s noch nicht bezahlt';
@@ -9,6 +12,10 @@ $this->phrasen['tools/studienerfolgsbestaetigung']='Studienerfolgsbestätigung';
$this->phrasen['tools/studiensemesterAuswaehlen']='Bitte wählen Sie das entsprechende Studiensemester aus';
$this->phrasen['tools/vorlageWohnsitzfinanzamt']='zur Vorlage beim Wohnsitzfinanzamt';
$this->phrasen['tools/studienbuchblatt']='Studienbuchblatt';
$this->phrasen['tools/alleStudiensemester']='Alle Studiensemester';
$this->phrasen['tools/abschlussdokumente']='Abschlussdokumente/Zeugnisse';
$this->phrasen['tools/nochKeineAbschlussdokumenteVorhanden']='Noch keine Abschlussdokumente vorhanden';
$this->phrasen['tools/keinStatusImStudiensemester']='Für das übergebene Studiensemester %1$s existiert kein Status. Bitte wählen Sie ein gültiges Studiensemester aus dem DropDown.';
//Leistungsbeurteilung
$this->phrasen['tools/leistungsbeurteilung']='Leistungsbeurteilung';
@@ -18,6 +25,10 @@ $this->phrasen['tools/nochKeineBeurteilungEingetragen']='Es wurden noch keine Be
$this->phrasen['tools/fehlerBeimAuslesenDerNoten']='Fehler beim Auslesen der Noten';
$this->phrasen['tools/benotungsdatumDerZeugnisnote']='Benotungsdatum der Zeugnisnote';
$this->phrasen['tools/hinweistextMarkierung']='Kennzeichnet jene Einträge, bei denen sich die LV-Note von der Zeugnisnote unterscheidet. <b>Letztgültig ist die Zeugnisnote</b>.<br>Sollten diese Angaben nicht stimmen, wenden Sie sich bitte an Ihre zuständige Assistenz.';
$this->phrasen['tools/notendurchschnittDerZeugnisnote']='Notendurchschnitt* der Zeugnisnote';
$this->phrasen['tools/gewichteterNotendurchschnittDerZeugnisnote']='Gewichteter** Notendurchschnitt* der Zeugnisnote';
$this->phrasen['tools/legendeGewichteterNotendurchschnitt']='Der gewichtete Notendurchschnitt errechnet sich aus der Note der Lehrveranstaltung, multipliziert mit deren ECTS, dividiert durch die Summe aller ECTS';
$this->phrasen['tools/legendeNotendurchschnitt']='Bitte beachten Sie, dass außercurriculare Lehrveranstaltungen (zB Freifächer) den errechneten Notendurchschnitt verfälschen können';
//Zahlungen
$this->phrasen['tools/zahlungen']='Zahlungen';
+1 -1
View File
@@ -57,4 +57,4 @@ $this->phrasen['zeitaufzeichnung/stunden']='Stunden';
$this->phrasen['zeitaufzeichnung/taetigkeit']='Tätigkeit';
$this->phrasen['zeitaufzeichnung/keineprojekte']='keine Projekte vorhanden';
$this->phrasen['zeitaufzeichnung/summe']='Summe:';
?>
$this->phrasen['zeitaufzeichnung/dienstreise']='Dienstreise';
+11
View File
@@ -2,6 +2,9 @@
//Dokumente
$this->phrasen['tools/dokumente']='Documents';
$this->phrasen['tools/dokument']='Document';
$this->phrasen['tools/erstelldatum']='Creation date';
$this->phrasen['tools/bestaetigungenZeugnisse']='Certificates/Transcripts';
$this->phrasen['tools/inskriptionsbestaetigung']='Enrollment Confirmation';
$this->phrasen['tools/studienbeitragFuerSSBezahlt']='tuition fee for semester %1$s paid';
$this->phrasen['tools/studienbeitragFuerSSNochNichtBezahlt']='tuition fee for semester %1$s not yet paid';
@@ -9,6 +12,10 @@ $this->phrasen['tools/studienerfolgsbestaetigung']='Student progress report';
$this->phrasen['tools/studiensemesterAuswaehlen']='Please select the corresponding semester';
$this->phrasen['tools/vorlageWohnsitzfinanzamt']='for submission to local tax office';
$this->phrasen['tools/studienbuchblatt']='Studienbuchblatt'; //Noch zu übersetzen
$this->phrasen['tools/alleStudiensemester']='All semester';
$this->phrasen['tools/abschlussdokumente']='Final documents/Transcripts';
$this->phrasen['tools/nochKeineAbschlussdokumenteVorhanden']='No final documents available yet';
$this->phrasen['tools/keinStatusImStudiensemester']='No status found for %1$s. Please select a valid semester from the dropdown.';
//Leistungsbeurteilung
$this->phrasen['tools/leistungsbeurteilung']='Performance Assessment ';
@@ -18,6 +25,10 @@ $this->phrasen['tools/nochKeineBeurteilungEingetragen']='No grade has been enter
$this->phrasen['tools/fehlerBeimAuslesenDerNoten']='Error reading the grades.';
$this->phrasen['tools/benotungsdatumDerZeugnisnote']='Date of grading';
$this->phrasen['tools/hinweistextMarkierung']='The marking indicates those entries where the grade for the course is different from the grade on the report card.<b>The grade on the report card is the valid one.</b> <br>Should these details not be correct please contact the Administrative Assistant responsible.';
$this->phrasen['tools/notendurchschnittDerZeugnisnote']='Average of final grade*';
$this->phrasen['tools/gewichteterNotendurchschnittDerZeugnisnote']='Weighted** average of final grade*';
$this->phrasen['tools/legendeGewichteterNotendurchschnitt']='The weighted average grade is calculated using the grade of the course, multiplied with its ECTS, divided by the sum of all ECTS';
$this->phrasen['tools/legendeNotendurchschnitt']='Please note that extracurricular courses (eg elective courses) may distort the calculated average grade';
//Zahlungen
$this->phrasen['tools/zahlungen']='Payments';
+1 -1
View File
@@ -57,4 +57,4 @@ $this->phrasen['zeitaufzeichnung/stunden']='Hours';
$this->phrasen['zeitaufzeichnung/taetigkeit']='Activity';
$this->phrasen['zeitaufzeichnung/keineprojekte']='no projects exist';
$this->phrasen['zeitaufzeichnung/summe']='Sum:';
?>
$this->phrasen['zeitaufzeichnung/dienstreise']='Business Trip';
+26 -1
View File
@@ -2297,6 +2297,31 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
// Add UNIQUE constraint on kurzbz from public.tbl_filter
if($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'uk_filter_kurzbz'"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "ALTER TABLE public.tbl_filter ADD CONSTRAINT uk_filter_kurzbz UNIQUE(kurzbz);";
if(!$db->db_query($qry))
echo '<strong>public.tbl_filter '.$db->db_last_error().'</strong><br>';
else
echo '<br>Added UNIQUE constraint on "kurzbz" from public.tbl_filter<br>';
}
}
// Reporting filter: bezeichnung
if(!$result = @$db->db_query("SELECT bezeichnung FROM public.tbl_filter LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_filter ADD COLUMN bezeichnung varchar(65);";
if(!$db->db_query($qry))
echo '<strong>public.tbl_filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_filter: Spalte bezeichnung hinzugefuegt';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -2462,7 +2487,7 @@ $tabellen=array(
"public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung", "pflicht","beschreibung_mehrsprachig","nachreichbar"),
"public.tbl_erhalter" => array("erhalter_kz","kurzbz","bezeichnung","dvr","logo","zvr"),
"public.tbl_fachbereich" => array("fachbereich_kurzbz","bezeichnung","farbe","studiengang_kz","aktiv","ext_id","oe_kurzbz"),
"public.tbl_filter" => array("filter_id","kurzbz","sql","valuename","showvalue","insertamum","insertvon","updateamum","updatevon","type","htmlattr"),
"public.tbl_filter" => array("filter_id","kurzbz","sql","valuename","showvalue","insertamum","insertvon","updateamum","updatevon","type","htmlattr", "bezeichnung"),
"public.tbl_firma" => array("firma_id","name","anmerkung","firmentyp_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id","schule","finanzamt","steuernummer","gesperrt","aktiv","lieferbedingungen","partner_code"),
"public.tbl_firma_mobilitaetsprogramm" => array("firma_id","mobilitaetsprogramm_code","ext_id"),
"public.tbl_firma_organisationseinheit" => array("firma_organisationseinheit_id","firma_id","oe_kurzbz","bezeichnung","kundennummer","updateamum","updatevon","insertamum","insertvon","ext_id"),
+35 -21
View File
@@ -136,6 +136,8 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
$personToDelete_obj = new person();
if ($personToDelete_obj->load($personToDelete))
{
$error = false;
$sql_query_upd1 = "BEGIN;";
$personToKeep_obj = new person();
$personToKeep_obj->load($personToKeep);
@@ -145,10 +147,32 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
{
$msg_error[] = 'Beide Personen haben eine Sozialversicherungsnummer oder ein Ersatzkennzeichen und können nicht zusammengelegt werden.<br>
Bitte wenden Sie sich an einen Administrator.';
$error = true;
}
else
// Wenn zwei gleiche rt_person Einträge vorhanden sind, wird ein Fehler ausgegeben und abgebrochen
$reihungstest_personToKeep = new reihungstest();
$reihungstest_personToKeep->getReihungstestPerson($personToKeep);
$doppelteReihungstestzuordnung = false;
foreach ($reihungstest_personToKeep->result as $row)
{
$rt_doppelt = new reihungstest();
if ($rt_doppelt->checkPersonRtStudienplanExists($personToDelete, $row->reihungstest_id, $row->studienplan_id))
{
$doppelteReihungstestzuordnung = true;
$msg_error[] = "Die Person ".$personToDelete." hat schon eine Reihungstestzuordnung
zu Reihungstest ID ".$row->reihungstest_id." im Studienplan ".$row->studienplan_id.".<br>
Sie müssen die Datensätze manuell bereinigen, bevor Sie die Personen zusammenlegen können.";
$error = true;
break;
}
}
if ($doppelteReihungstestzuordnung === false)
$sql_query_upd1 .= "UPDATE public.tbl_rt_person SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
if ($error == false)
{
$sql_query_upd1 = "BEGIN;";
// Wenn bei einer der Personen das Foto gesperrt ist, dann die Sperre uebernehmen
if ($personToDelete_obj->foto_sperre)
$sql_query_upd1 .= "UPDATE public.tbl_person SET foto_sperre=true WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";";
@@ -218,8 +242,8 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
}
// Bild in tbl_person auf 240x320 skalieren
//$base64_src = resize($base64foto, 240, 320); Auskommentiert bis das auch im Echtsystem geht
$base64_src = $base64foto;
$base64_src = resize($base64foto, 240, 320);
$sql_query_upd1 .= "UPDATE public.tbl_person SET foto=" . $db->db_add_param($base64_src) . " WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";";
}
@@ -260,23 +284,6 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
else
$zugangscode = $personToKeep_obj->zugangscode;
// Check ob rt_person-zuordnung schon vorhanden ist
// Wenn ja, wird der Eintrag der zu löschenden Person ebenfalls gelöscht
$reihungstest_person = new reihungstest();
//if (!$reihungstest_person->getReihungstestPerson($personToKeep))
$sql_query_upd1 .= "UPDATE public.tbl_rt_person SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
/*else
{
$sql_query_upd1 .= "DELETE FROM public.tbl_rt_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$reihungstest = new reihungstest($reihungstest_person->result[0]->reihungstest_id);
$msg_warning[] = "Das verbliebene Person ".$personToKeep." hat schon eine Reihungstestzuordnung
zu Reihungstest ID".$reihungstest->reihungstest_id." am ".$reihungstest->datum."
für das ".$reihungstest->studiensemester_kurzbz." im Studiengang ".$reihungstest->studiengang_kz." (Studienplan ".$reihungstest_person->result[0]->studienplan_id.")<br>
Die Reihungstestzuordnung von ".$personToDelete." wurde gelöscht";
}*/
$sql_query_upd1 .= "UPDATE addon.tbl_kompetenz SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= "UPDATE lehre.tbl_abschlusspruefung SET pruefer1=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE pruefer1=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= "UPDATE lehre.tbl_abschlusspruefung SET pruefer2=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE pruefer2=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
@@ -928,6 +935,13 @@ function resize($base64, $width, $height) // 828 x 1104 -> 240 x 320
}
function checkPersonen()
{
// Check, ob jeweils ein Radiobutton ausgewählt wurde
if(!$('input[type=radio][name=radio_1]').is(':checked') || !$('input[type=radio][name=radio_2]').is(':checked'))
{
alert('Bitte wählen Sie auf beiden Seiten einen Radio-Button aus');
return false;
}
// Wenn die Personen zu unterschiedlich sind, Warnung ausgeben
// Prüfen auf Vorname, Nachname, Geburtsdatum
var nachnameLinks = $('input[type=radio][name=radio_1]:checked').closest('tr').find('.nachname').text().toLowerCase();
+9 -5
View File
@@ -44,6 +44,7 @@
$filter = new filter();
$filter->filter_id = '';
$filter->kurzbz = 'NewFilter';
$filter->bezeichnung = 'New Filter';
$filter->sql = 'SELECT foo AS value, bar AS name FROM foobar WHERE ... ORDER BY name';
$filter->valuename = '';
$filter->showvalue = true;
@@ -68,6 +69,7 @@
}
$filter->kurzbz = $_POST["kurzbz"];
$filter->bezeichnung = $_POST["bezeichnung"];
$filter->valuename = $_POST["valuename"];
$filter->sql = $_POST["sql"];
$filter->showvalue = isset($_POST["showvalue"]);
@@ -104,19 +106,21 @@
$htmlstr .= " <table class='detail'>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td>KurzBz</td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='kurzbz' size='16' maxlength='32' value='".$filter->kurzbz."' onchange='submitable()'></td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='kurzbz' size='12' maxlength='24' value='".$filter->kurzbz."' onchange='submitable()'></td>\n";
$htmlstr .= " <td>Bezeichnung</td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='bezeichnung' size='12' maxlength='24' value='".$filter->bezeichnung."' onchange='submitable()'></td>\n";
$htmlstr .= " <td>ValueName</td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='valuename' size='16' maxlength='32' value='".$filter->valuename."' onchange='submitable()'></td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='valuename' size='12' maxlength='24' value='".$filter->valuename."' onchange='submitable()'></td>\n";
$htmlstr .= " <td>Type</td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='type' size='16' maxlength='32' value='".$filter->type."' onchange='submitable()'></td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='type' size='12' maxlength='24' value='".$filter->type."' onchange='submitable()'></td>\n";
$htmlstr .= " <td>ShowValue</td>\n";
$htmlstr .= " <td><input class='detail' type='checkbox' name='showvalue' $chk onchange='submitable()'></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td valign='top'>SQL</td>\n";
$htmlstr .= " <td colspan='5'><textarea name='sql' cols='70' rows='6' onchange='submitable()'>".$filter->sql."</textarea></td>\n";
$htmlstr .= " <td colspan='7'><textarea name='sql' cols='95' rows='6' onchange='submitable()'>".$filter->sql."</textarea></td>\n";
$htmlstr .= " <td valign='top'>HTML-Attributes</td>\n";
$htmlstr .= " <td colspan='2'><textarea name='htmlattr' cols='70' rows='6' onchange='submitable()'>".$filter->htmlattr."</textarea></td>\n";
$htmlstr .= " <td colspan='3'><textarea name='htmlattr' cols='70' rows='6' onchange='submitable()'>".$filter->htmlattr."</textarea></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " </table>\n";
$htmlstr .= "<br>\n";