diff --git a/cis/private/lehre/lehrtaetigkeit.pdf.php b/cis/private/lehre/lehrtaetigkeit.pdf.php
new file mode 100644
index 000000000..d99f2bf6b
--- /dev/null
+++ b/cis/private/lehre/lehrtaetigkeit.pdf.php
@@ -0,0 +1,276 @@
+.
+ */
+
+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();
+
+
diff --git a/cis/private/tools/ampelverwaltung.php b/cis/private/tools/ampelverwaltung.php
index c3135b71e..893ac8764 100644
--- a/cis/private/tools/ampelverwaltung.php
+++ b/cis/private/tools/ampelverwaltung.php
@@ -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){
-
';
+
';
}
}
?>
@@ -401,7 +401,7 @@ function typeWrite(span){
$cnt_active++;
}
- if ($cnt_active == 0)
+ if ($cnt_active == 0 && !$is_popup)
{
echo '
diff --git a/content/statistik/bewerberstatistik.php b/content/statistik/bewerberstatistik.php
index 252a565e5..ff61e92f4 100644
--- a/content/statistik/bewerberstatistik.php
+++ b/content/statistik/bewerberstatistik.php
@@ -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
| Studiengang |
InteressentInnen (m/w) |
- InteressentInnen mit ZGV (m/w) |
+ InteressentInnen mit ZGV (m/w) * |
InteressentInnen mit RT Anmeldung (m/w) |
BewerberIn (m/w) |
Aufgenommene (m/w) |
@@ -2099,7 +2101,7 @@ else
$content .= '
';
$content .= "| ".mb_strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang) | ";
$content .= "$row->interessenten ($row->interessenten_m / $row->interessenten_w) | ";
- $content .= "k.A. | ";
+ $content .= "k.A.* | ";
$content .= "$row->interessentenrtanmeldung ($row->interessentenrtanmeldung_m / $row->interessentenrtanmeldung_w) | ";
$content .= "$row->bewerber ($row->bewerber_m / $row->bewerber_w) | ";
$content .= "$row->aufgenommener ($row->aufgenommener_m / $row->aufgenommener_w) | ";
@@ -2136,7 +2138,7 @@ else
$content .= '
';
$content .= "| Summe | ";
$content .= "$interessenten_sum ($interessenten_m_sum / $interessenten_w_sum) | ";
- $content .= "k.A. | ";
+ $content .= "k.A.* | ";
$content .= "$interessentenrt_sum ($interessentenrt_m_sum / $interessentenrt_w_sum) | ";
$content .= "$bewerber_sum ($bewerber_m_sum / $bewerber_w_sum) | ";
$content .= "$aufgenommener_sum ($aufgenommener_m_sum / $aufgenommener_w_sum) | ";
@@ -2146,6 +2148,7 @@ else
$content .= "
";
$content .= '';
+ $content .= "
* für ZGV liegen zum Stichtag keine historischen Daten vor";
//Verteilung
$content .= '
Verteilung '.$stsem.'
';
$qry = "SELECT
diff --git a/include/lehreinheitmitarbeiter.class.php b/include/lehreinheitmitarbeiter.class.php
index 85493cd9e..e1933cfa7 100644
--- a/include/lehreinheitmitarbeiter.class.php
+++ b/include/lehreinheitmitarbeiter.class.php
@@ -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
diff --git a/include/projektbetreuer.class.php b/include/projektbetreuer.class.php
index 72dcffe8f..e962b2d0a 100644
--- a/include/projektbetreuer.class.php
+++ b/include/projektbetreuer.class.php
@@ -1,337 +1,395 @@
-,
- * Andreas Oesterreicher
and
- * Rudolf Hangl .
- */
-/**
- * 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;
- }
- }
-}
-?>
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+/**
+ * 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;
+ }
+ }
+}
+?>
diff --git a/include/pruefling.class.php b/include/pruefling.class.php
index d0c5daf8d..999efc7f2 100644
--- a/include/pruefling.class.php
+++ b/include/pruefling.class.php
@@ -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
)
diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php
index bbc418c1b..8d9ee0e9c 100644
--- a/include/wochenplan.class.php
+++ b/include/wochenplan.class.php
@@ -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;
}
}
}
diff --git a/system/vorlage_zip/Lehrtaetigkeit.odt b/system/vorlage_zip/Lehrtaetigkeit.odt
new file mode 100644
index 000000000..f5a01b46b
Binary files /dev/null and b/system/vorlage_zip/Lehrtaetigkeit.odt differ
diff --git a/system/xsl/lehrtaetigkeit_0.xsl b/system/xsl/lehrtaetigkeit_0.xsl
new file mode 100644
index 000000000..b3d16dbd0
--- /dev/null
+++ b/system/xsl/lehrtaetigkeit_0.xsl
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bestätigung über Lehrtätigkeit
+
+
+ Hiermit wird bestätigt, dass ,
+ geboren am ,
+
+
+ in der Zeit von bis
+ für die FH Technikum Wien als Hochschullehrer tätig war.
+ Seine Tätigkeit umfasste die Konzeption, Organisation und Abhaltung von Lehrveranstaltungen.
+
+
+ seit
+ für die FH Technikum Wien als Hochschullehrer tätig ist.
+ Seine Tätigkeit umfasst die Konzeption, Organisation und Abhaltung von Lehrveranstaltungen.
+
+
+
+
+ Nachstehend eine detaillierte Aufstellung der Lehraufträge:
+
+
+
+
+
+ Semester
+
+
+ Semesterstunden pro Semester
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Für das aktuelle Semester sind derzeit Semesterstunden beauftragt.
+
+
+
+
+ FACHHOCHSCHULE TECHNIKUM WIEN
+
+
+
+
+
+
+
+
+
+
+ Wien, 04.04.2019
+
+
+
+
+
+
+
\ No newline at end of file