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){
sancho_verpflichtende_ampeln
-



'; +



'; } } ?> @@ -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