Merge remote-tracking branch 'origin/master'

This commit is contained in:
alex
2019-04-11 10:11:24 +02:00
9 changed files with 938 additions and 367 deletions
+276
View File
@@ -0,0 +1,276 @@
<?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: Cristina Hainberger hainberg@technikum-wien.at>.
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/dokument_export.class.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/person.class.php');
require_once('../../../include/lehreinheitmitarbeiter.class.php');
require_once('../../../include/lehreinheit.class.php');
require_once('../../../include/projektbetreuer.class.php');
require_once('../../../include/projektarbeit.class.php');
require_once('../../../include/bisverwendung.class.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$user = get_uid();
$sprache = getSprache();
$p = new phrasen($sprache);
$doc = new dokument_export('Lehrtaetigkeit');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
// Check permission
$berechtigung = new benutzerberechtigung();
$berechtigung->getBerechtigungen($user);
if (!$berechtigung->isBerechtigt('admin') &&
!$berechtigung->isBerechtigt('mitarbeiter'))
die('Sie muessen das Recht "ADMIN" oder "MITARBEITER" haben, um diese Seite aufrufen zu koennen');
// Get GET params
$uid = (isset($_GET['uid']) && is_string($_GET['uid'])) ? $_GET['uid'] : die($p->t('global/fehlerBeimErmittelnDerUID'));
$output = (isset($_GET['output']) && ($_GET['output'] == 'odt' || $_GET['output'] == 'doc')) ? $_GET['output'] : 'pdf';
// Personal data of lector
$person = new Person();
$person->getPersonFromBenutzer($uid);
$person_id = $person->person_id;
$anrede = $person->anrede;
$fullname = $person->getFullName();
$birthday_date = new DateTime($person->gebdatum);
// Get the lectors lehreinheiten-semesterstunden per semester
$semesterstunden_per_semester = array();
$le_ma = new Lehreinheitmitarbeiter();
// * get all semester of the lector where he was teaching actively
$active_semester_arr = $le_ma->getSemesterZuLektor($uid);
$active_semester_arr = array_keys($active_semester_arr);
// * for each semester:
foreach($active_semester_arr as $active_semester)
{
// * get all the lectors lehreinheiten
$le_id_arr = array();
$le_array = $le_ma->getLehreinheiten($uid, $active_semester);
foreach($le_array as $le)
{
$le_id_arr[]= $le->lehreinheit_id;
}
// * get begin- and end date of studiensemester
$ss = new Studiensemester($active_semester);
$studiensemester_start_date = $ss->start;
$studiensemester_end_date = $ss->ende;
// * get total amount of semesterstunden of the lehreinheiten, where stundensatz > 0
$total_semesterstunden = 0;
foreach ($le_id_arr as $le_id)
{
$le_ma = new Lehreinheitmitarbeiter($le_id, $uid);
if ($le_ma && (!is_null ($le_ma->stundensatz) && $le_ma->stundensatz > 0))
{
$total_semesterstunden = $total_semesterstunden + $le_ma->semesterstunden;
}
}
// * store data only if semesterstunden > 0
if ($total_semesterstunden > 0)
{
$semesterstunden_per_semester []= (
array(
'studiensemester_kurzbz'=> $active_semester,
'total_semesterstunden' => $total_semesterstunden,
'studiensemester_start_date' => $studiensemester_start_date,
'studiensemester_end_date' => $studiensemester_end_date
)
);
}
}
// Get the lectors projektarbeitstunden per semester
$projektstunden_per_semester = array();
$pb = new Projektbetreuer();
$pb->getAllProjects($person_id);
$project_arr = $pb->result;
// * for each project
foreach ($project_arr as $project)
{
$pa_id = $project->projektarbeit_id;
$projektstunden = $project->stunden;
// * get studiensemester
$pa = new Projektarbeit($pa_id);
$le = new Lehreinheit($pa->lehreinheit_id);
$studiensemester_kurzbz = $le->studiensemester_kurzbz;
// * get begin- and end date of studiensemester
$ss = new Studiensemester($studiensemester_kurzbz);
$studiensemester_start_date = $ss->start;
$studiensemester_end_date = $ss->ende;
// Get total amount of semesterstunden by studiensemester
// * check if studiensemester already exists. If so, get array index.
$studiensemester_index = array_search($studiensemester_kurzbz, array_map(function($val) {
return $val['studiensemester_kurzbz'];
}, $projektstunden_per_semester
));
// * if studiensemester exists, sum up hours of projektarbeit, where stundensatz > 0
if ($studiensemester_index !== false)
{
$projektstunden_per_semester [$studiensemester_index]['total_semesterstunden'] = $projektstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + $projektstunden;
}
// * if not, create new index
else
{
$projektstunden_per_semester []= (
array(
'studiensemester_kurzbz'=> $studiensemester_kurzbz,
'total_semesterstunden' => $projektstunden,
'studiensemester_start_date' => $studiensemester_start_date,
'studiensemester_end_date' => $studiensemester_end_date
)
);
}
}
// Merge lehreinheit- and projektarbeitstunden arrays
foreach ($projektstunden_per_semester as $item)
{
// check if studiensemester already exists in projektstunden-per-term-array. If so, get array index.
$studiensemester_index = array_search($item['studiensemester_kurzbz'], array_map(function($val) {
return $val['studiensemester_kurzbz'];
}, $semesterstunden_per_semester
));
// * if studiensemester exists, merge lehreinheit- and projektarbeit hours
if ($studiensemester_index !== false)
{
$semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] = $semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + $item['total_semesterstunden'];
}
// * if not, create new index
else
{
$semesterstunden_per_semester []= (
array(
'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'],
'total_semesterstunden' => intval($item['total_semesterstunden']),
'studiensemester_start_date' => $item['studiensemester_start_date'],
'studiensemester_end_date' => $item['studiensemester_end_date']
)
);
}
}
// Sort lehreinheit- and projektarbeitstunden array by date
usort($semesterstunden_per_semester, function($a, $b)
{
return strtotime($a['studiensemester_start_date']) - strtotime($b['studiensemester_start_date']);
});
// Split studiensemester array into actual studiensemester array and former studiensemester array
// * get actual studiensemester
$ss = new Studiensemester();
$actual_studiensemester = $ss->getakt();
$actual_studiensemester_index = array_search($actual_studiensemester, array_map(function($val) {
return $val['studiensemester_kurzbz'];
}, $semesterstunden_per_semester
));
// * if lector is teaching actually, split former teaching activities from actual teaching activities of actual studiensemester
$semesterstunden_of_actual_semester = array();
if ($actual_studiensemester_index !== false)
{
$semesterstunden_of_actual_semester = array_slice($semesterstunden_per_semester, $actual_studiensemester_index); // array with actual + future semester
$semesterstunden_per_semester = array_slice($semesterstunden_per_semester, 0, $actual_studiensemester_index); // array with all former semester
}
// Semester begin and ending date of lehreinheit- and projektarbeit studiensemester
// * begin date of first lehreinheit- and projektarbeit studiensemester
$earliest_ss = current($semesterstunden_per_semester)['studiensemester_start_date'];
$begin_date = !is_null($earliest_ss) ? new DateTime($earliest_ss) : null;
// * end date of last lehreinheit- and projektarbeit studiensemester
// * if lector is teaching on actual studiensemester, get end date of actual studiensemester
$latest_ss = !empty($semesterstunden_of_actual_semester)
? current($semesterstunden_of_actual_semester)['studiensemester_end_date']
// * else get end date of the last of his teaching studiensemester
: end($semesterstunden_per_semester)['studiensemester_end_date'];
$end_date = !is_null($latest_ss) ? new DateTime($latest_ss) : null;
$actual_date = new DateTime();
// if the lector is still employed, reset the end date to null
if ($end_date > $actual_date)
{
$end_date = null;
}
$data = array (
'anrede' => $anrede,
'full_name' => $fullname,
'birthday' => $birthday_date->format('d.m.Y'),
'begin_date' => !is_null($begin_date) ? $begin_date->format('d.m.Y') : '',
'end_date' => !is_null($end_date) ? $end_date->format('d.m.Y') : '', // empty, if lector is still employed
'total_ss_actual_semester' => current($semesterstunden_of_actual_semester), // empty, if lector has no lehreinheit- or projektarbeitsstunden at the actual studiensemester
'actual_date' => $actual_date->format('d.m.Y')
);
// Put semesterstunden per semester array in correct format for xsl template
if (!empty($semesterstunden_per_semester))
{
foreach ($semesterstunden_per_semester as &$item)
{
$data[]= array('total_ss_per_semester'=>
array(
'studiensemester_kurzbz'=> $item['studiensemester_kurzbz'],
'total_semesterstunden' => $item['total_semesterstunden']
)
);
}
}
else
{
$data[]= array('total_ss_per_semester'=> ''); // empty if lector has no lehreinheit- or projektarbeitsstunden in the past (before the actual studiensemester)
}
// Add data to lehrtaetigkeit.xsl
$doc->addDataArray($data, 'lehrtaetigkeit');
// Set doc name
$doc->setFilename('Lehrtaetigkeit_'. rtrim($fullname, '.'));
// Create doc in format required
if (!$doc->create($output))
die($doc->errormsg);
// Download doc
$doc->output();
// unlink doc from tmp-folder
$doc->close();
+4 -4
View File
@@ -124,10 +124,10 @@ if ($is_popup)
$user_ampel_arr,
$cnt_ueberfaellig_und_verpflichtend) = //counts mandatory, overdue (not expired), unconfirmed, not before vorlaufzeit
getPopupUserAmpelData($user_ampel_arr);
}
}
//filter ampeln of actual term (if radiobutton is set to aktuell)
if ($show == 'aktuell')
if (!$is_popup && $show == 'aktuell')
$user_ampel_arr = getActualUserAmpelData($user_ampel_arr, $semester_start);
@@ -361,7 +361,7 @@ function typeWrite(span){
<div>
<img src="../../../skin/images/sancho/sancho_header_du_hast_verpflichtende_ampeln.jpg" alt="sancho_verpflichtende_ampeln" style="width: 100%;">
</div>
<p><br><br></p>';
<p><br><br></p>';
}
}
?>
@@ -401,7 +401,7 @@ function typeWrite(span){
$cnt_active++;
}
if ($cnt_active == 0)
if ($cnt_active == 0 && !$is_popup)
{
echo '
<div class="panel">
+25 -22
View File
@@ -1085,15 +1085,15 @@ if (isset($_GET['excel']))
$worksheet2->write($zeile, ++$i, $row->interessenten_w, $$format);
if (strlen($row->interessenten_w) > $maxlength[$i])
$maxlength[$i] = mb_strlen($row->interessenten_w);
$worksheet2->write($zeile, ++$i, "k.A.", $$format);
if (strlen("k.A.") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.");
$worksheet2->write($zeile, ++$i, "k.A.", $$format);
if (strlen("k.A.") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.");
$worksheet2->write($zeile, ++$i, "k.A.", $$format);
if (strlen("k.A.") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.");
$worksheet2->write($zeile, ++$i, "k.A.*", $$format);
if (strlen("k.A.*") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.*");
$worksheet2->write($zeile, ++$i, "k.A.*", $$format);
if (strlen("k.A.*") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.*");
$worksheet2->write($zeile, ++$i, "k.A.*", $$format);
if (strlen("k.A.*") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.*");
$worksheet2->write($zeile, ++$i, $row->interessentenrtanmeldung, $$format);
if (strlen($row->interessentenrtanmeldung) > $maxlength[$i])
$maxlength[$i] = mb_strlen($row->interessentenrtanmeldung);
@@ -1188,15 +1188,15 @@ if (isset($_GET['excel']))
$worksheet2->write($zeile, ++$i, $interessenten_w_sum, $format_bold);
if (strlen($interessenten_w_sum) > $maxlength[$i])
$maxlength[$i] = mb_strlen($interessenten_w_sum);
$worksheet2->write($zeile, ++$i, "k.A.", $format_bold);
if (strlen("k.A.") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.");
$worksheet2->write($zeile, ++$i, "k.A.", $format_bold);
if (strlen("k.A.") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.");
$worksheet2->write($zeile, ++$i, "k.A.", $format_bold);
if (strlen("k.A.") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.");
$worksheet2->write($zeile, ++$i, "k.A.*", $format_bold);
if (strlen("k.A.*") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.*");
$worksheet2->write($zeile, ++$i, "k.A.*", $format_bold);
if (strlen("k.A.*") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.*");
$worksheet2->write($zeile, ++$i, "k.A.*", $format_bold);
if (strlen("k.A.*") > $maxlength[$i])
$maxlength[$i] = mb_strlen("k.A.*");
$worksheet2->write($zeile, ++$i, $interessentenrtanmeldung_sum, $format_bold);
if (strlen($interessentenrtanmeldung_sum) > $maxlength[$i])
$maxlength[$i] = mb_strlen($interessentenrtanmeldung_sum);
@@ -1253,7 +1253,9 @@ if (isset($_GET['excel']))
$maxlength[$i] = mb_strlen($student3sem_w_sum);
}
//Verteilung
$zeile = $zeile + 3;
$zeile = $zeile + 2;
$worksheet2->write($zeile, 0, '* für ZGV liegen zum Stichtag keine historischen Daten vor');
$zeile = $zeile + 2;
$i = 0;
$worksheet2->write($zeile, 0, 'Verteilung'.$stsem, $format_bold);
$worksheet2->mergeCells($zeile, $i, $zeile, $i + 1);
@@ -2060,7 +2062,7 @@ else
<tr>
<th class='table-sortable:default'>Studiengang</th>
<th class='table-sortable:numeric'>InteressentInnen (m/w)</th>
<th class='table-sortable:numeric'>InteressentInnen mit ZGV (m/w)</th>
<th class='table-sortable:numeric'>InteressentInnen mit ZGV (m/w) *</th>
<th class='table-sortable:numeric'>InteressentInnen mit RT Anmeldung (m/w)</th>
<th class='table-sortable:numeric'>BewerberIn (m/w)</th>
<th class='table-sortable:numeric'>Aufgenommene (m/w)</th>
@@ -2099,7 +2101,7 @@ else
$content .= '<tr>';
$content .= "<td>".mb_strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)</td>";
$content .= "<td align='center'>$row->interessenten ($row->interessenten_m / $row->interessenten_w)</td>";
$content .= "<td align='center'>k.A.</td>";
$content .= "<td align='center'>k.A.*</td>";
$content .= "<td align='center'>$row->interessentenrtanmeldung ($row->interessentenrtanmeldung_m / $row->interessentenrtanmeldung_w)</td>";
$content .= "<td align='center'>$row->bewerber ($row->bewerber_m / $row->bewerber_w)</td>";
$content .= "<td align='center'>$row->aufgenommener ($row->aufgenommener_m / $row->aufgenommener_w)</td>";
@@ -2136,7 +2138,7 @@ else
$content .= '</tbody><tfoot style="font-weight: bold;"><tr>';
$content .= "<td>Summe</td>";
$content .= "<td align='center'>$interessenten_sum ($interessenten_m_sum / $interessenten_w_sum)</td>";
$content .= "<td align='center'>k.A.</td>";
$content .= "<td align='center'>k.A.*</td>";
$content .= "<td align='center'>$interessentenrt_sum ($interessentenrt_m_sum / $interessentenrt_w_sum)</td>";
$content .= "<td align='center'>$bewerber_sum ($bewerber_m_sum / $bewerber_w_sum)</td>";
$content .= "<td align='center'>$aufgenommener_sum ($aufgenommener_m_sum / $aufgenommener_w_sum)</td>";
@@ -2146,6 +2148,7 @@ else
$content .= "</tr>";
$content .= '</tfoot></table>';
$content .= "<br />* für ZGV liegen zum Stichtag keine historischen Daten vor";
//Verteilung
$content .= '<br><h2>Verteilung '.$stsem.'</h2><br>';
$qry = "SELECT
+1 -1
View File
@@ -474,7 +474,7 @@ class lehreinheitmitarbeiter extends basis_db
public function getLehreinheiten($mitarbeiter_uid, $studiensemester_kurzbz)
{
$qry = 'SELECT
DISTINCT lehreinheit_id, lv_bezeichnung, lv_kurzbz, unr, lv_lehrform_kurzbz, stg_kurzbzlang,
DISTINCT lehreinheit_id, lehrveranstaltung_id, lv_bezeichnung, lv_kurzbz, unr, lv_lehrform_kurzbz, stg_kurzbzlang,
lv_semester, lehrform_kurzbz
FROM
campus.vw_lehreinheit
+395 -337
View File
@@ -1,337 +1,395 @@
<?php
/* Copyright (C) 2007 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse projektbetreuer
* @create 08-02-2007
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class projektbetreuer extends basis_db
{
public $new; // boolean
public $result = array(); // adresse Objekt
//Tabellenspalten
public $person_id; // integer
public $projektarbeit_id; // integer
public $note; // integer
public $betreuerart_kurzbz;// varchar
public $faktor; // numeric(3,2)
public $name; // string
public $punkte; // numeric(6,2)
public $stunden; // numeric(8,4)
public $stundensatz; // numeric(6,2)
public $ext_id; // integer
public $insertamum; // timestamp
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
public $vertrag_id; // bigint
public $person_id_old;
/**
* Konstruktor
* @param $person_id, $projektarbeit ID des Projektbetreuers, der geladen werden soll (Default=null)
*/
public function __construct($person_id=null, $projektarbeit_id=null)
{
parent::__construct();
if($projektarbeit_id != null && $person_id!=null)
$this->load($person_id, $projektarbeit_id);
}
/**
* Laedt die Funktion mit der ID $person_id, $projektarbeit_id
* @param $person_id ID der zu ladenden Funktion
* @param $projektarbeit_id ID der zu ladenden Funktion
* @return true wenn ok, false im Fehlerfall
*/
public function load($person_id, $projektarbeit_id, $betreuerart_kurzbz)
{
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT
*
FROM
lehre.tbl_projektbetreuer
WHERE
person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
AND projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
AND betreuerart_kurzbz=".$this->db_add_param($betreuerart_kurzbz);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->person_id = $row->person_id;
$this->projektarbeit_id = $row->projektarbeit_id;
$this->note = $row->note;
$this->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$this->faktor = $row->faktor;
$this->name = $row->name;
$this->punkte = $row->punkte;
$this->stunden = $row->stunden;
$this->stundensatz = $row->stundensatz;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->ext_id = $row->ext_id;
$this->vertrag_id = $row->vertrag_id;
$this->new=false;
return true;
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
protected function validate()
{
if($this->betreuerart_kurzbz=='')
{
$this->errormsg = 'Betreuerart muss eingegeben werden';
return false;
}
if(mb_strlen($this->betreuerart_kurzbz)>16)
{
$this->errormsg = 'betreuerart darf nicht länger als 16 Zeichen sein';
return false;
}
if(mb_strlen($this->name)>32)
{
$this->errormsg = 'Name darf nicht länger als 32 Zeichen sein';
return false;
}
if($this->note!='' && !is_numeric($this->note))
{
$this->errormsg = 'Note muss ein numerischer Wert sein';
return false;
}
if($this->punkte!='' && !is_numeric($this->punkte))
{
$this->errormsg = 'Punkte muss ein numerischer Wert sein';
}
if($this->faktor!='' && !is_numeric($this->faktor))
{
$this->errormsg = 'Faktor muss ein numerischer Wert sein';
return false;
}
if($this->stundensatz!='' && !is_numeric($this->stundensatz))
{
$this->errormsg = 'Stundensatz muss ein numerischer Wert sein';
return false;
}
//Pruefen ob projektarbeit_id eine gueltige Zahl ist
if(!is_numeric($this->projektarbeit_id))
{
$this->errormsg = 'projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
//Pruefen ob person_id eine gueltige Zahl ist
if(!is_numeric($this->person_id))
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function save($new=null)
{
if($new==null)
$new = $this->new;
//Variablen pruefen
if(!$this->validate())
return false;
if($new)
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO lehre.tbl_projektbetreuer (person_id, projektarbeit_id, note, betreuerart_kurzbz, faktor, name,
punkte, stunden, stundensatz, insertamum, insertvon, updateamum, updatevon, vertrag_id) VALUES('.
$this->db_add_param($this->person_id).', '.
$this->db_add_param($this->projektarbeit_id).', '.
$this->db_add_param($this->note).', '.
$this->db_add_param($this->betreuerart_kurzbz).', '.
$this->db_add_param($this->faktor).', '.
$this->db_add_param($this->name).', '.
$this->db_add_param($this->punkte).', '.
$this->db_add_param($this->stunden).', '.
$this->db_add_param($this->stundensatz).', now(), '.
$this->db_add_param($this->insertvon).', now(), '.
$this->db_add_param($this->updatevon).', '.
$this->db_add_param($this->vertrag_id).');';
}
else
{
//Updaten des bestehenden Datensatzes
if($this->person_id_old=='')
$this->person_id_old = $this->person_id;
if(!isset($this->betreuerart_kurzbz_old) || $this->betreuerart_kurzbz_old=='')
$this->betreuerart_kurzbz_old = $this->betreuerart_kurzbz;
$qry='UPDATE lehre.tbl_projektbetreuer SET '.
'person_id='.$this->db_add_param($this->person_id).', '.
'note='.$this->db_add_param($this->note).', '.
'betreuerart_kurzbz='.$this->db_add_param($this->betreuerart_kurzbz).', '.
'faktor='.$this->db_add_param($this->faktor).', '.
'name='.$this->db_add_param($this->name).', '.
'punkte='.$this->db_add_param($this->punkte).', '.
'stunden='.$this->db_add_param($this->stunden).', '.
'stundensatz='.$this->db_add_param($this->stundensatz).', '.
'updateamum='.$this->db_add_param($this->updateamum).', '.
'updatevon='.$this->db_add_param($this->updatevon).', '.
'vertrag_id='.$this->db_add_param($this->vertrag_id).' '.
"WHERE projektarbeit_id=".$this->db_add_param($this->projektarbeit_id, FHC_INTEGER,false).
" AND person_id=".$this->db_add_param($this->person_id_old, FHC_INTEGER,false).
" AND betreuerart_kurzbz=".$this->db_add_param($this->betreuerart_kurzbz_old).";";
}
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
/**
* Loescht den Datenensatz mit der ID die uebergeben wird
* @param $person_id ID die geloescht werden soll
* @param $projektarbeit_id ID die geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
public function delete($person_id, $projektarbeit_id, $betreuerart_kurzbz)
{
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM lehre.tbl_projektbetreuer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER)." AND projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." AND betreuerart_kurzbz=".$this->db_add_param($betreuerart_kurzbz).";";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Loeschen des Datensatzes';
return false;
}
}
/**
* Liefert alle Betreuer zu einer Projektarbeit
* @param projektarbeit_id
*/
public function getProjektbetreuer($projektarbeit_id)
{
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." ORDER BY name";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new projektbetreuer();
$obj->person_id = $row->person_id;
$obj->projektarbeit_id = $row->projektarbeit_id;
$obj->note = $row->note;
$obj->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$obj->faktor = $row->faktor;
$obj->name = $row->name;
$obj->punkte = $row->punkte;
$obj->stunden = $row->stunden;
$obj->stundensatz = $row->stundensatz;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id;
$obj->vertrag_id = $row->vertrag_id;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei einer Abfrage';
return false;
}
}
}
?>
<?php
/* Copyright (C) 2007 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse projektbetreuer
* @create 08-02-2007
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class projektbetreuer extends basis_db
{
public $new; // boolean
public $result = array(); // adresse Objekt
//Tabellenspalten
public $person_id; // integer
public $projektarbeit_id; // integer
public $note; // integer
public $betreuerart_kurzbz;// varchar
public $faktor; // numeric(3,2)
public $name; // string
public $punkte; // numeric(6,2)
public $stunden; // numeric(8,4)
public $stundensatz; // numeric(6,2)
public $ext_id; // integer
public $insertamum; // timestamp
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
public $vertrag_id; // bigint
public $person_id_old;
/**
* Konstruktor
* @param $person_id, $projektarbeit ID des Projektbetreuers, der geladen werden soll (Default=null)
*/
public function __construct($person_id=null, $projektarbeit_id=null)
{
parent::__construct();
if($projektarbeit_id != null && $person_id!=null)
$this->load($person_id, $projektarbeit_id);
}
/**
* Laedt die Funktion mit der ID $person_id, $projektarbeit_id
* @param $person_id ID der zu ladenden Funktion
* @param $projektarbeit_id ID der zu ladenden Funktion
* @return true wenn ok, false im Fehlerfall
*/
public function load($person_id, $projektarbeit_id, $betreuerart_kurzbz)
{
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT
*
FROM
lehre.tbl_projektbetreuer
WHERE
person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
AND projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
AND betreuerart_kurzbz=".$this->db_add_param($betreuerart_kurzbz);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->person_id = $row->person_id;
$this->projektarbeit_id = $row->projektarbeit_id;
$this->note = $row->note;
$this->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$this->faktor = $row->faktor;
$this->name = $row->name;
$this->punkte = $row->punkte;
$this->stunden = $row->stunden;
$this->stundensatz = $row->stundensatz;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->ext_id = $row->ext_id;
$this->vertrag_id = $row->vertrag_id;
$this->new=false;
return true;
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
protected function validate()
{
if($this->betreuerart_kurzbz=='')
{
$this->errormsg = 'Betreuerart muss eingegeben werden';
return false;
}
if(mb_strlen($this->betreuerart_kurzbz)>16)
{
$this->errormsg = 'betreuerart darf nicht länger als 16 Zeichen sein';
return false;
}
if(mb_strlen($this->name)>32)
{
$this->errormsg = 'Name darf nicht länger als 32 Zeichen sein';
return false;
}
if($this->note!='' && !is_numeric($this->note))
{
$this->errormsg = 'Note muss ein numerischer Wert sein';
return false;
}
if($this->punkte!='' && !is_numeric($this->punkte))
{
$this->errormsg = 'Punkte muss ein numerischer Wert sein';
}
if($this->faktor!='' && !is_numeric($this->faktor))
{
$this->errormsg = 'Faktor muss ein numerischer Wert sein';
return false;
}
if($this->stundensatz!='' && !is_numeric($this->stundensatz))
{
$this->errormsg = 'Stundensatz muss ein numerischer Wert sein';
return false;
}
//Pruefen ob projektarbeit_id eine gueltige Zahl ist
if(!is_numeric($this->projektarbeit_id))
{
$this->errormsg = 'projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
//Pruefen ob person_id eine gueltige Zahl ist
if(!is_numeric($this->person_id))
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function save($new=null)
{
if($new==null)
$new = $this->new;
//Variablen pruefen
if(!$this->validate())
return false;
if($new)
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO lehre.tbl_projektbetreuer (person_id, projektarbeit_id, note, betreuerart_kurzbz, faktor, name,
punkte, stunden, stundensatz, insertamum, insertvon, updateamum, updatevon, vertrag_id) VALUES('.
$this->db_add_param($this->person_id).', '.
$this->db_add_param($this->projektarbeit_id).', '.
$this->db_add_param($this->note).', '.
$this->db_add_param($this->betreuerart_kurzbz).', '.
$this->db_add_param($this->faktor).', '.
$this->db_add_param($this->name).', '.
$this->db_add_param($this->punkte).', '.
$this->db_add_param($this->stunden).', '.
$this->db_add_param($this->stundensatz).', now(), '.
$this->db_add_param($this->insertvon).', now(), '.
$this->db_add_param($this->updatevon).', '.
$this->db_add_param($this->vertrag_id).');';
}
else
{
//Updaten des bestehenden Datensatzes
if($this->person_id_old=='')
$this->person_id_old = $this->person_id;
if(!isset($this->betreuerart_kurzbz_old) || $this->betreuerart_kurzbz_old=='')
$this->betreuerart_kurzbz_old = $this->betreuerart_kurzbz;
$qry='UPDATE lehre.tbl_projektbetreuer SET '.
'person_id='.$this->db_add_param($this->person_id).', '.
'note='.$this->db_add_param($this->note).', '.
'betreuerart_kurzbz='.$this->db_add_param($this->betreuerart_kurzbz).', '.
'faktor='.$this->db_add_param($this->faktor).', '.
'name='.$this->db_add_param($this->name).', '.
'punkte='.$this->db_add_param($this->punkte).', '.
'stunden='.$this->db_add_param($this->stunden).', '.
'stundensatz='.$this->db_add_param($this->stundensatz).', '.
'updateamum='.$this->db_add_param($this->updateamum).', '.
'updatevon='.$this->db_add_param($this->updatevon).', '.
'vertrag_id='.$this->db_add_param($this->vertrag_id).' '.
"WHERE projektarbeit_id=".$this->db_add_param($this->projektarbeit_id, FHC_INTEGER,false).
" AND person_id=".$this->db_add_param($this->person_id_old, FHC_INTEGER,false).
" AND betreuerart_kurzbz=".$this->db_add_param($this->betreuerart_kurzbz_old).";";
}
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
/**
* Loescht den Datenensatz mit der ID die uebergeben wird
* @param $person_id ID die geloescht werden soll
* @param $projektarbeit_id ID die geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
public function delete($person_id, $projektarbeit_id, $betreuerart_kurzbz)
{
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM lehre.tbl_projektbetreuer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER)." AND projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." AND betreuerart_kurzbz=".$this->db_add_param($betreuerart_kurzbz).";";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Loeschen des Datensatzes';
return false;
}
}
/**
* Liefert alle Betreuer zu einer Projektarbeit
* @param projektarbeit_id
*/
public function getProjektbetreuer($projektarbeit_id)
{
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." ORDER BY name";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new projektbetreuer();
$obj->person_id = $row->person_id;
$obj->projektarbeit_id = $row->projektarbeit_id;
$obj->note = $row->note;
$obj->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$obj->faktor = $row->faktor;
$obj->name = $row->name;
$obj->punkte = $row->punkte;
$obj->stunden = $row->stunden;
$obj->stundensatz = $row->stundensatz;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id;
$obj->vertrag_id = $row->vertrag_id;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei einer Abfrage';
return false;
}
}
/**
* Retrieves all projektarbeiten by person (only with stundensatz > 0)
* @param $person_id
* @return boolean If succeeded true and result-array with objects of each projektarbeit of the person.
*/
public function getAllProjects($person_id)
{
if (isset($person_id) && is_numeric($person_id))
{
$qry = '
SELECT
*
FROM
lehre.tbl_projektbetreuer
WHERE
(stundensatz IS NOT NULL) AND (stundensatz > 0)
AND
person_id =' . $this->db_add_param($person_id, FHC_INTEGER);
if ($this->db_query($qry))
{
while ($row = $this->db_fetch_object())
{
$obj = new projektbetreuer();
$obj->person_id = $row->person_id;
$obj->projektarbeit_id = $row->projektarbeit_id;
$obj->note = $row->note;
$obj->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$obj->faktor = $row->faktor;
$obj->name = $row->name;
$obj->punkte = $row->punkte;
$obj->stunden = $row->stunden;
$obj->stundensatz = $row->stundensatz;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id;
$obj->vertrag_id = $row->vertrag_id;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei einer Abfrage';
return false;
}
}
else
{
$this->errormsg = 'Person_id fehlt oder nicht numerisch.';
return false;
}
}
}
?>
-2
View File
@@ -400,8 +400,6 @@ class pruefling extends basis_db
tbl_rt_person.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER)."
AND
tbl_prestudentstatus.status_kurzbz='Interessent'
AND
(tbl_reihungstest.stufe = 1 OR tbl_reihungstest.stufe IS NULL)
ORDER BY
tbl_reihungstest.datum desc LIMIT 1
)
+8 -1
View File
@@ -1231,11 +1231,18 @@ class wochenplan extends basis_db
//Wenn eine Zeitsperre eingetragen ist, dann diese im Tooltiptext anzeigen
$zeitsperre = new zeitsperre();
$zeitsperre->getSperreByDate($this->pers_uid, date('Y-m-d',$datum), $j);
$datum_obj = new datum();
foreach($zeitsperre->result as $sperren)
{
if ($tooltip!='')
$tooltip.=', ';
$tooltip.=$sperren->zeitsperretyp_kurzbz.' - '.$sperren->bezeichnung;
$aenderungsdatum = $sperren->insertamum;
if($sperren->updateamum>$sperren->insertamum)
$aenderungsdatum = $sperren->updateamum;
$updateinfo = '';
if ($aenderungsdatum != '')
$updateinfo = ' (letzte Änderung: '.$datum_obj->formatDatum($aenderungsdatum,'d.m.Y H:i').')';
$tooltip.=$sperren->zeitsperretyp_kurzbz.' - '.$sperren->bezeichnung.$updateinfo;
}
}
}
Binary file not shown.
+229
View File
@@ -0,0 +1,229 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="lehrtaetigkeit">
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer"
xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events"
xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rpt="http://openoffice.org/2005/report"
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"
xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#"
xmlns:officeooo="http://openoffice.org/2009/office"
xmlns:tableooo="http://openoffice.org/2009/table"
xmlns:drawooo="http://openoffice.org/2010/draw"
xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">
<office:scripts/>
<office:font-face-decls>
<style:font-face style:name="Mangal1" svg:font-family="Mangal"/>
<style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;"
style:font-family-generic="roman" style:font-pitch="variable"/>
<style:font-face style:name="Arial" svg:font-family="Arial" style:font-adornments="Standard"
style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;"
style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Mangal" svg:font-family="Mangal" style:font-family-generic="system"
style:font-pitch="variable"/>
<style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;"
style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system"
style:font-pitch="variable"/>
</office:font-face-decls>
<office:automatic-styles>
<style:style style:name="Tabelle1" style:family="table">
<style:table-properties style:width="17cm" table:align="margins"/>
</style:style>
<style:style style:name="Tabelle1.A" style:family="table-column">
<style:table-column-properties style:column-width="8.5cm" style:rel-column-width="32767*"/>
</style:style>
<style:style style:name="Tabelle1.B" style:family="table-column">
<style:table-column-properties style:column-width="8.5cm" style:rel-column-width="32768*"/>
</style:style>
<style:style style:name="Tabelle1.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #cccccc"
fo:border-right="none" fo:border-top="0.05pt solid #cccccc"
fo:border-bottom="0.05pt solid #cccccc"/>
</style:style>
<style:style style:name="Tabelle1.B1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #cccccc"/>
</style:style>
<style:style style:name="Tabelle1.A2" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #cccccc"
fo:border-right="none" fo:border-top="none"
fo:border-bottom="0.05pt solid #cccccc"/>
</style:style>
<style:style style:name="Tabelle1.B2" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #cccccc"
fo:border-right="0.05pt solid #cccccc" fo:border-top="none"
fo:border-bottom="0.05pt solid #cccccc"/>
</style:style>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="115%"/>
<style:text-properties style:font-name="Arial" fo:font-size="11pt" officeooo:rsid="0019e1ef"
officeooo:paragraph-rsid="0019e1ef" style:font-size-asian="10.5pt"
loext:shadow="none"/>
</style:style>
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="115%" fo:text-align="end" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="11pt" officeooo:rsid="0019e1ef"
officeooo:paragraph-rsid="0019e1ef" style:font-size-asian="10.5pt"
loext:shadow="none"/>
</style:style>
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="115%" fo:text-align="justify"
style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="11pt" officeooo:rsid="0019e1ef"
officeooo:paragraph-rsid="0019e1ef" style:font-size-asian="10.5pt"
loext:shadow="none"/>
</style:style>
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="115%"/>
<style:text-properties style:font-name="Arial" fo:font-size="13pt" officeooo:rsid="0019e1ef"
officeooo:paragraph-rsid="0019e1ef" style:font-size-asian="13pt"
style:font-size-complex="13pt" loext:shadow="none"/>
</style:style>
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="11pt" officeooo:rsid="0019e1ef"
officeooo:paragraph-rsid="0019e1ef" style:font-size-asian="10.5pt"/>
</style:style>
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="11pt" fo:font-weight="bold"
officeooo:rsid="0019e1ef" officeooo:paragraph-rsid="0019e1ef"
style:font-size-asian="10.5pt" style:font-weight-asian="bold"
style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="115%"/>
<style:text-properties style:font-name="Arial" fo:font-size="11pt" officeooo:rsid="0019e1ef"
officeooo:paragraph-rsid="0019e1ef" style:font-size-asian="10.5pt"
loext:shadow="none"/>
</style:style>
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:vertical-pos="from-top" style:vertical-rel="paragraph"
style:horizontal-pos="from-left" style:horizontal-rel="paragraph"
style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%"
draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%"
draw:color-inversion="false" draw:image-opacity="100%"
draw:color-mode="standard"/>
</style:style>
</office:automatic-styles>
<office:body>
<office:text>
<text:sequence-decls>
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:p text:style-name="P4">Bestätigung über Lehrtätigkeit</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P3">Hiermit wird bestätigt, dass <xsl:value-of select="anrede" /> <xsl:text> </xsl:text><xsl:value-of select="full_name" />,
geboren am <xsl:value-of select="birthday" />,
<xsl:choose>
<xsl:when test="end_date != ''">
in der Zeit von <xsl:value-of select="begin_date" /> bis <xsl:value-of select="end_date" />
für die FH Technikum Wien als Hochschullehrer tätig war.
Seine Tätigkeit umfasste die Konzeption, Organisation und Abhaltung von Lehrveranstaltungen.
</xsl:when>
<xsl:otherwise>
seit <xsl:value-of select="begin_date" />
für die FH Technikum Wien als Hochschullehrer tätig ist.
Seine Tätigkeit umfasst die Konzeption, Organisation und Abhaltung von Lehrveranstaltungen.
</xsl:otherwise>
</xsl:choose>
</text:p>
<text:p text:style-name="P3"/>
<text:p text:style-name="P1">Nachstehend eine detaillierte Aufstellung der Lehraufträge:</text:p>
<text:p text:style-name="P1"/>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A" table:number-columns-repeated="2"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P6">Semester</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P6">Semesterstunden pro Semester</text:p>
</table:table-cell>
</table:table-row>
<!--apply dynamic table rows-->
<xsl:for-each select="total_ss_per_semester">
<xsl:if test="total_semesterstunden > 0">
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P5"><xsl:value-of select="studiensemester_kurzbz" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P5"><xsl:value-of select="total_semesterstunden" /></text:p>
</table:table-cell>
</table:table-row>
</xsl:if>
</xsl:for-each>
</table:table>
<text:p text:style-name="P1"/>
<xsl:if test="total_ss_actual_semester != ''">
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">Für das aktuelle Semester <xsl:value-of select="total_ss_actual_semester/studiensemester_kurzbz" /> sind derzeit <xsl:value-of select="total_ss_actual_semester/total_semesterstunden" /> Semesterstunden beauftragt.
</text:p>
</xsl:if>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">FACHHOCHSCHULE TECHNIKUM WIEN</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">
<draw:frame draw:style-name="fr1" draw:name="Bild1" text:anchor-type="paragraph" svg:x="0.183cm"
svg:y="0.025cm" svg:width="5.226cm" svg:height="2.182cm" draw:z-index="0">
<draw:image xlink:href="Pictures/10000000000001AF000000B49D9770EDA3C5B4C0.jpg" xlink:type="simple"
xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P2">Wien, 04.04.2019</text:p>
</office:text>
</office:body>
</office:document-content>
</xsl:template>
</xsl:stylesheet>