diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php
index 05ac22ebd..883f8b8f8 100644
--- a/application/controllers/system/infocenter/InfoCenter.php
+++ b/application/controllers/system/infocenter/InfoCenter.php
@@ -234,7 +234,7 @@ class InfoCenter extends Auth_Controller
$akte_id = $this->input->post('akte_id');
$formalgeprueft = $this->input->post('formal_geprueft');
- $json = false;
+ $json = null;
if (isset($akte_id) && isset($formalgeprueft) && isset($person_id))
{
@@ -247,7 +247,7 @@ class InfoCenter extends Auth_Controller
if (isSuccess($result))
{
- $json = $timestamp;
+ $json = is_null($timestamp) ? '' : $timestamp;
$this->_log(
$person_id,
@@ -261,7 +261,7 @@ class InfoCenter extends Auth_Controller
}
}
- $this->output->set_content_type('application/json')->set_output(json_encode($json));
+ $this->outputJsonSuccess(array($json));
}
/**
@@ -272,7 +272,7 @@ class InfoCenter extends Auth_Controller
{
$prestudentdata = $this->_loadPrestudentData($person_id);
- $this->output->set_content_type('application/json')->set_output(json_encode($prestudentdata['zgvpruefungen']));
+ $this->outputJsonSuccess($prestudentdata['zgvpruefungen']);
}
/**
@@ -283,7 +283,7 @@ class InfoCenter extends Auth_Controller
{
$prestudent = $this->PrestudentModel->getLastPrestudent($person_id, true);
- $this->output->set_content_type('application/json')->set_output(json_encode($prestudent));
+ $this->outputJson($prestudent);
}
/**
@@ -299,10 +299,10 @@ class InfoCenter extends Auth_Controller
$studiengangbezeichnung = $prestudentdata['studiengang_bezeichnung'];
$data = array(
- 'studiengang_bezeichnung' => $studiengangbezeichnung,
- 'studiengang_kurzbz' => $studiengangkurzbz,
- 'data' => null
- );
+ 'studiengang_bezeichnung' => $studiengangbezeichnung,
+ 'studiengang_kurzbz' => $studiengangkurzbz,
+ 'data' => null
+ );
if (hasData($studienordnung))
{
@@ -319,13 +319,14 @@ class InfoCenter extends Auth_Controller
{
$prestudent_id = $this->input->post('prestudentid');
$change = $this->input->post('change');
+ $json = false;
- if (!is_numeric($change) || !is_numeric($prestudent_id))
- $result = error('Parameteres missing');
- else
- $result = $this->PrestudentModel->changePrio($prestudent_id, intval($change));
+ if (is_numeric($change) || is_numeric($prestudent_id))
+ {
+ $json = $this->PrestudentModel->changePrio($prestudent_id, intval($change));
+ }
- $this->output->set_content_type('application/json')->set_output(json_encode($result));
+ $this->outputJsonSuccess(array($json));
}
/**
@@ -403,7 +404,8 @@ class InfoCenter extends Auth_Controller
$this->_log($logdata['person_id'], 'savezgv', array($logdata['studiengang_kurzbz'], $prestudent_id));
}
}
- $this->output->set_content_type('application/json')->set_output(json_encode($json));
+
+ $this->outputJson($json);
}
/**
@@ -454,7 +456,8 @@ class InfoCenter extends Auth_Controller
}
}
}
- $this->output->set_content_type('application/json')->set_output(json_encode($json));
+
+ $this->outputJson($json);
}
/**
@@ -521,9 +524,7 @@ class InfoCenter extends Auth_Controller
// acceptresult returns null if no documents to accept
if ($acceptresult !== null && isError($acceptresult))
- {
- $json->error = 2;
- }
+ $json->retval['nonCriticalErrors'] = 'error when accepting documents in FAS';
$logparams = array($prestudent_id, $logdata['studiengang_kurzbz'], '');
@@ -543,7 +544,7 @@ class InfoCenter extends Auth_Controller
}
}
- $this->output->set_content_type('application/json')->set_output(json_encode($json));
+ $this->outputJson($json);
}
/**
@@ -557,7 +558,7 @@ class InfoCenter extends Auth_Controller
$notiz_id
);
- $this->output->set_content_type('application/json')->set_output(json_encode($result));
+ $this->outputJson($result);
}
/**
@@ -577,7 +578,7 @@ class InfoCenter extends Auth_Controller
$this->_log($person_id, 'savenotiz', array($titel));
}
- $this->output->set_content_type('application/json')->set_output(json_encode($result));
+ $this->outputJson($result);
}
/**
@@ -608,7 +609,7 @@ class InfoCenter extends Auth_Controller
$this->_log($person_id, 'updatenotiz', array($titel));
}
- $this->output->set_content_type('application/json')->set_output(json_encode($result));
+ $this->outputJson($result);
}
/**
@@ -696,9 +697,9 @@ class InfoCenter extends Auth_Controller
*/
public function getParkedDate($person_id)
{
- $result = $this->personloglib->getParkedDate($person_id);
+ $parkedDate = $this->personloglib->getParkedDate($person_id);
- $this->output->set_content_type('application/json')->set_output(json_encode($result));
+ $this->outputJsonSuccess(array($parkedDate));
}
/**
@@ -711,7 +712,7 @@ class InfoCenter extends Auth_Controller
$result = $this->personloglib->park($person_id, date_format(date_create($date), 'Y-m-d'), self::TAETIGKEIT, self::APP, null, $this->_uid);
- $this->output->set_content_type('application/json')->set_output(json_encode($result));
+ $this->outputJson($result);
}
/**
@@ -722,14 +723,8 @@ class InfoCenter extends Auth_Controller
$person_id = $this->input->post('person_id');
$result = $this->personloglib->unPark($person_id);
- if (isError($result))
- {
- $this->outputJsonError($result);
- }
- else
- {
- $this->output->set_content_type('application/json')->set_output(json_encode(getData($result)));
- }
+
+ $this->outputJson($result);
}
/**
@@ -741,14 +736,14 @@ class InfoCenter extends Auth_Controller
$result = $this->StudienjahrModel->getCurrStudienjahr();
- $json = false;
+ $json = null;
if (hasData($result))
{
$json = $result->retval[0]->ende;
}
- $this->output->set_content_type('application/json')->set_output(json_encode($json));
+ $this->outputJsonSuccess(array($json));
}
/**
@@ -1254,7 +1249,6 @@ class InfoCenter extends Auth_Controller
$data = array (
'zgvpruefungen' => $zgvpruefungen,
- 'numberinteressenten' => $interessentenCount,
'abwstatusgruende' => $abwstatusgruende,
'intstatusgruende' => $intstatusgruende
);
diff --git a/application/core/FHC_Controller.php b/application/core/FHC_Controller.php
index 5b6901f52..7b29b43e7 100644
--- a/application/core/FHC_Controller.php
+++ b/application/core/FHC_Controller.php
@@ -96,7 +96,7 @@ class FHC_Controller extends CI_Controller
*/
protected function outputJsonSuccess($mixed)
{
- $this->_outputJson(success($mixed));
+ $this->outputJson(success($mixed));
}
/**
@@ -105,7 +105,7 @@ class FHC_Controller extends CI_Controller
*/
protected function outputJsonError($mixed)
{
- $this->_outputJson(error($mixed));
+ $this->outputJson(error($mixed));
}
/**
@@ -119,13 +119,10 @@ class FHC_Controller extends CI_Controller
exit;
}
- //------------------------------------------------------------------------------------------------------------------
- // Private methods
-
/**
* Utility method to output using JSON as content type
*/
- private function _outputJson($mixed)
+ protected function outputJson($mixed)
{
$this->output->set_content_type('application/json')->set_output(json_encode($mixed));
}
diff --git a/application/models/accounting/Kostenstelle_model.php b/application/models/accounting/Kostenstelle_model.php
index 719d08835..592b6e9f2 100644
--- a/application/models/accounting/Kostenstelle_model.php
+++ b/application/models/accounting/Kostenstelle_model.php
@@ -52,7 +52,7 @@ class Kostenstelle_model extends DB_Model
* @param null $geschaeftsjahr
* @return array|null
*/
- public function getKostenstellenForGegitschaeftsjahrWithOe($geschaeftsjahr = null)
+ public function getKostenstellenForGeschaeftsjahrWithOe($geschaeftsjahr = null)
{
$this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel');
@@ -106,6 +106,31 @@ class Kostenstelle_model extends DB_Model
}
}
+ /**
+ * Gets all Kostenstellen for which logged in user is berechtigt.
+ * @param null $berechtigung_kurzbz
+ * @param null $art
+ * @return array
+ */
+ public function getKostenstellenBerechtigt($berechtigung_kurzbz = null, $art = null)
+ {
+ $allkostenstellen = $this->load();
+ $kostenstellen = array();
+
+ if (hasData($allkostenstellen))
+ {
+ foreach ($allkostenstellen->retval as $kostenstelle)
+ {
+ if ($this->permissionlib->isBerechtigt($berechtigung_kurzbz, $art, null, $kostenstelle->kostenstelle_id))
+ {
+ $kostenstellen[] = $kostenstelle;
+ }
+ }
+ }
+
+ return success($kostenstellen);
+ }
+
/**
* Gets either given Geschaeftsjahr, current Geschaeftsjahr if not given, or chronologically last Geschaeftsjahr if there is no current
* @param $geschaeftsjahr
diff --git a/application/models/education/Lehreinheit_model.php b/application/models/education/Lehreinheit_model.php
index 737d482f8..7dba40153 100644
--- a/application/models/education/Lehreinheit_model.php
+++ b/application/models/education/Lehreinheit_model.php
@@ -14,6 +14,7 @@ class Lehreinheit_model extends DB_Model
$this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel');
$this->load->model('education/lehreinheitgruppe_model', 'LehreinheitgruppeModel');
$this->load->model('education/lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel');
+ $this->load->model('organisation/studiengang_model', 'StudiengangModel');
}
/**
@@ -57,13 +58,22 @@ class Lehreinheit_model extends DB_Model
{
foreach ($lehreinheitgruppen->retval as $lehreinheitgruppe)
{
- $letoadd->lehreinheitgruppen[] = array(
- 'semester' => $lehreinheitgruppe->semester,
- 'verband' => $lehreinheitgruppe->verband,
- 'gruppe' => $lehreinheitgruppe->gruppe,
- 'gruppe_kurzbz' => $lehreinheitgruppe->gruppe_kurzbz,
- 'direktinskription' => $lehreinheitgruppe->direktinskription
- );
+ $studiengangresponse = $this->StudiengangModel->load($lehreinheitgruppe->studiengang_kz);
+ if (hasData($studiengangresponse))
+ {
+ $studiengang = $studiengangresponse->retval[0];
+ $stgkuerzel = mb_strtoupper($studiengang->typ . $studiengang->kurzbz);
+
+ $letoadd->lehreinheitgruppen[] = array(
+ 'semester' => $lehreinheitgruppe->semester,
+ 'verband' => $lehreinheitgruppe->verband,
+ 'gruppe' => $lehreinheitgruppe->gruppe,
+ 'gruppe_kurzbz' => $lehreinheitgruppe->gruppe_kurzbz,
+ 'direktinskription' => $lehreinheitgruppe->direktinskription,
+ 'studiengang_kz' => $lehreinheitgruppe->studiengang_kz,
+ 'studiengang_kuerzel' => $stgkuerzel
+ );
+ }
}
}
diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php
index c7455f62e..1685ddf81 100644
--- a/application/models/education/Lehrveranstaltung_model.php
+++ b/application/models/education/Lehrveranstaltung_model.php
@@ -208,11 +208,11 @@ class Lehrveranstaltung_model extends DB_Model
* Gets valid Lehrveranstaltungen with incoming places for a Studiensemester.
* Only
* 1. Lvs with incoming places > 0
- * 2. Studienordnung valid in current semester or with Lehrauftrag (i.e. assigned Lehreinheit)
+ * 2. Studienplan valid in current semester or with Lehrauftrag (i.e. assigned Lehreinheit)
* @param $studiensemester_kurzbz
* @return object
*/
- public function getLvsWithIncomings($studiensemester_kurzbz)
+ public function getLvsWithIncomingPlaces($studiensemester_kurzbz)
{
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
@@ -221,36 +221,45 @@ class Lehrveranstaltung_model extends DB_Model
if (!hasData($studsemres))
return success(array());
- $semstart = $studsemres->retval[0]->start;
- $semende = $studsemres->retval[0]->ende;
-
- $parametersarray = array($studiensemester_kurzbz, $studsemres->retval[0]->studienjahr_kurzbz, $semstart, $semende, $studiensemester_kurzbz);
+ $parametersarray = array($studiensemester_kurzbz, $studsemres->retval[0]->studienjahr_kurzbz, $studiensemester_kurzbz, $studiensemester_kurzbz);
$query = "
- SELECT lv.*, ? AS studiensemester_kurzbz, ? AS studienjahr_kurzbz, UPPER(stg.typ::varchar(1) || stg.kurzbz) AS studiengang_kuerzel,
- stg.bezeichnung AS studiengang_bezeichnung, stg.english AS studiengang_bezeichnung_english, stg.typ, tbl_sprache.locale
- FROM lehre.tbl_lehrveranstaltung lv
- JOIN public.tbl_studiengang stg ON lv.studiengang_kz = stg.studiengang_kz
- JOIN public.tbl_sprache ON lv.sprache = tbl_sprache.sprache
- WHERE lv.lehrtyp_kurzbz != 'modul'
- AND (
- EXISTS
- (
- SELECT 1 FROM
- lehre.tbl_studienplan_lehrveranstaltung
- JOIN lehre.tbl_studienplan ON tbl_studienplan_lehrveranstaltung.studienplan_id = tbl_studienplan.studienplan_id
- JOIN lehre.tbl_studienordnung ON tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id
- JOIN public.tbl_studiensemester semvon ON lehre.tbl_studienordnung.gueltigvon = semvon.studiensemester_kurzbz OR lehre.tbl_studienordnung.gueltigvon IS NULL
- JOIN public.tbl_studiensemester sembis ON lehre.tbl_studienordnung.gueltigbis = sembis.studiensemester_kurzbz OR lehre.tbl_studienordnung.gueltigbis IS NULL
- WHERE tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id = lv.lehrveranstaltung_id
- AND (?::date >= semvon.start OR semvon.start IS NULL) AND (?::date <= sembis.ende OR sembis.ende IS NULL)
- )
- OR EXISTS (SELECT 1 FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id AND studiensemester_kurzbz = ?)
- )
- AND lv.incoming > 0
- AND lv.aktiv
- AND stg.typ IN ('b', 'm')
- ORDER BY studiengang_kuerzel, orgform_kurzbz, lv.bezeichnung, lv.lehrform_kurzbz, lv.lehrveranstaltung_id
+ SELECT * FROM (
+ SELECT DISTINCT ON (lv.lehrveranstaltung_id) lv.lehrveranstaltung_id, lv.bezeichnung AS lv_bezeichnung, lv.kurzbz AS lv_kurzbz, lv.sprache, lv.ects, lv.lehre,
+ lv.lehreverzeichnis, lv.sws, lv.lvs, lv.alvs, lv.lvps, lv.las, lv.incoming, lv.lehrform_kurzbz, lv.orgform_kurzbz AS lv_orgform, lv.semester,
+ ? AS studiensemester_kurzbz, ? AS studienjahr_kurzbz, UPPER(stg.typ::VARCHAR(1) || stg.kurzbz) AS studiengang_kuerzel,
+ stg.bezeichnung AS studiengang_bezeichnung, stg.english AS studiengang_bezeichnung_english, stg.typ, stg.orgform_kurzbz AS studiengang_orgform,
+ tbl_sprache.locale, CASE WHEN lv.orgform_kurzbz NOTNULL THEN lv.orgform_kurzbz ELSE stg.orgform_kurzbz END AS orgform_kurzbz
+ FROM lehre.tbl_lehrveranstaltung lv
+ JOIN public.tbl_studiengang stg ON lv.studiengang_kz = stg.studiengang_kz
+ JOIN public.tbl_sprache ON lv.sprache = tbl_sprache.sprache
+ WHERE lv.lehrtyp_kurzbz != 'modul'
+ AND (
+ EXISTS
+ (
+ WITH gueltige_studienplaene AS (
+ SELECT studienplan_id, semester
+ FROM lehre.tbl_studienplan
+ JOIN lehre.tbl_studienplan_semester USING(studienplan_id)
+ WHERE tbl_studienplan.aktiv
+ AND lehre.tbl_studienplan_semester.studiensemester_kurzbz = ?
+ )
+ SELECT 1
+ FROM lehre.tbl_studienplan_lehrveranstaltung
+ WHERE tbl_studienplan_lehrveranstaltung.studienplan_id IN (SELECT studienplan_id FROM gueltige_studienplaene)
+ AND tbl_studienplan_lehrveranstaltung.semester IN
+ (SELECT semester FROM gueltige_studienplaene
+ WHERE gueltige_studienplaene.studienplan_id = tbl_studienplan_lehrveranstaltung.studienplan_id)
+ AND tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id = lv.lehrveranstaltung_id
+ AND tbl_studienplan_lehrveranstaltung.export
+ )
+ OR EXISTS (SELECT 1 FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id AND studiensemester_kurzbz = ?)
+ )
+ AND lv.incoming > 0
+ AND lv.aktiv
+ AND (stg.typ IN ('b', 'm') OR stg.studiengang_kz = 10006)-- ECI Studiengang Campus International
+ ) lvs
+ ORDER BY studiengang_kuerzel, orgform_kurzbz, lv_bezeichnung, lehrform_kurzbz, lehrveranstaltung_id;
";
return $this->execQuery($query, $parametersarray);
diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php
index 806f87410..86344d06b 100644
--- a/application/views/system/infocenter/zgvpruefungen.php
+++ b/application/views/system/infocenter/zgvpruefungen.php
@@ -387,19 +387,19 @@
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
{
$disabled = $disabledStg = 'disabled';
- $disabledTxt = $disabledStgTxt = 'Die Bewerbung muss erst abgeschickt worden sein.';
+ $disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
}
if ($studiengangtyp !== 'b')
{
$disabled = 'disabled';
- $disabledTxt = 'Nur Bachelorstudiengänge können freigegeben werden.';
+ $disabledTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
{
$disabledStg = 'disabled';
- $disabledStgTxt = 'Nur Bachelorstudiengänge können freigegeben werden.';
+ $disabledStgTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
}
}
?>
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/cis/testtool/menu.php b/cis/testtool/menu.php
index ed63324a3..cb1feb67e 100644
--- a/cis/testtool/menu.php
+++ b/cis/testtool/menu.php
@@ -193,7 +193,8 @@ if (isset($_SESSION['pruefling_id']))
)
- SELECT DISTINCT
+ SELECT DISTINCT ON
+ (gebiet_id, semester)
semester,
gebiet_id,
bezeichnung,
@@ -252,6 +253,7 @@ if (isset($_SESSION['pruefling_id']))
ORDER BY
semester,
+ gebiet_id,
reihung
";
diff --git a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
index 4f9951d57..894540d3e 100644
--- a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
@@ -49,7 +49,8 @@ echo "
-
+
+
diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php
index f0d7ba12d..c131cbc36 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.js.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.js.php
@@ -2264,7 +2264,7 @@ function LehrveranstaltungFFZertifikatPrint(event)
// ****
// * Erstellt ein Lehrveranstaltungszeugnis fuer die LV
// ****
-function LehrveranstaltungLVZeugnisPrint(event)
+function LehrveranstaltungLVZeugnisPrint(event, sprache)
{
tree = document.getElementById('lehrveranstaltung-noten-tree');
//Alle markierten Noten holen
@@ -2299,9 +2299,13 @@ function LehrveranstaltungLVZeugnisPrint(event)
else
var output='pdf';
- url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl=LVZeugnis&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp();
+ var xsl = 'LVZeugnis';
+
+ if (sprache == 'English')
+ xsl = 'LVZeugnisEng';
+
+ url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp();
window.location.href = url;
- //prompt('test:',url);
}
// ****
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/content/student/studentnotenoverlay.xul.php b/content/student/studentnotenoverlay.xul.php
index cdb0fee15..8ea509327 100644
--- a/content/student/studentnotenoverlay.xul.php
+++ b/content/student/studentnotenoverlay.xul.php
@@ -47,7 +47,8 @@ echo "
-
+
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index 28e715346..203bbcb24 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -427,7 +427,7 @@ function StudentFFZertifikatPrint(event)
//****
//* Erstellt ein Lehrveranstaltungszeugnis fuer die LV
//****
-function StudentLVZeugnisPrint(event)
+function StudentLVZeugnisPrint(event, sprache)
{
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-noten-tree');
@@ -451,8 +451,11 @@ function StudentLVZeugnisPrint(event)
else
var output='pdf';
-
- url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl=LVZeugnis&stg_kz='+stg_kz+'&uid=;'+uid+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
+ var xsl = 'LVZeugnis';
+ if (sprache == 'English')
+ xsl = 'LVZeugnisEng';
+
+ url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&uid=;'+uid+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
window.location.href = url;
}
@@ -1921,13 +1924,13 @@ function StudentRolleSpeichern(dialog, studiensemester_old, ausbildungssemester_
datepart = bewerbung_abgeschicktamum.substring(0, 10);
timepart = bewerbung_abgeschicktamum.substring(11);
arr = datepart.split('.');
-
+
if(arr[0].length==1)
arr[0]='0'+arr[0];
-
+
if(arr[1].length==1)
arr[1]='0'+arr[1];
-
+
bewerbung_abgeschicktamum = arr[2]+'-'+arr[1]+'-'+arr[0]+' '+timepart;
}
}
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/organisationseinheit.class.php b/include/organisationseinheit.class.php
index 405d73cd6..39c389a78 100644
--- a/include/organisationseinheit.class.php
+++ b/include/organisationseinheit.class.php
@@ -24,17 +24,17 @@
*/
/**
* Klasse Organisationseinheit
- *
+ *
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class organisationseinheit extends basis_db
{
public static $oe_parents_array=array();
- public $new; // @var boolean
+ public $new; // @var boolean
public $errormsg; // @var string
public $result;
-
+
//Tabellenspalten
public $oe_kurzbz;
public $oe_parent_kurzbz;
@@ -43,13 +43,13 @@ class organisationseinheit extends basis_db
public $aktiv=true;
public $lehre=true;
public $mailverteiler=false;
- public $standort_id;
-
+ public $standort_id;
+
public $oe_kurzbz_orig;
public $beschreibung;
public $oetyp_bezeichnung;
-
-
+
+
/**
* Konstruktor
* @param $oe_kurzbz Kurzbz der Organisationseinheit
@@ -57,7 +57,7 @@ class organisationseinheit extends basis_db
public function __construct($oe_kurzbz=null)
{
parent::__construct();
-
+
if($oe_kurzbz != null)
$this->load($oe_kurzbz);
}
@@ -76,17 +76,17 @@ class organisationseinheit extends basis_db
if(!is_null($aktiv))
$qry.=" AND aktiv=".$this->db_add_param($aktiv, FHC_BOOLEAN);
- if(!is_null($lehre))
+ if(!is_null($lehre))
$qry.=" AND lehre=".$this->db_add_param($lehre, FHC_BOOLEAN);
$qry .=" ORDER BY ".$order;
-
+
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new organisationseinheit();
-
+
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->oe_parent_kurzbz = $row->oe_parent_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
@@ -94,18 +94,18 @@ class organisationseinheit extends basis_db
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->mailverteiler = $this->db_parse_bool($row->mailverteiler);
$obj->lehre = $this->db_parse_bool($row->lehre);
-
+
$this->result[] = $obj;
}
return true;
}
- else
+ else
{
$this->errormsg = 'Fehler beim Laden der Organisationseinheiten';
return false;
}
}
-
+
/**
* Laedt eine Organisationseinheit
* @param $oe_kurzbz
@@ -136,7 +136,7 @@ class organisationseinheit extends basis_db
$this->aktiv = $this->db_parse_bool($row->aktiv);
$this->mailverteiler = $this->db_parse_bool($row->mailverteiler);
$this->lehre = $this->db_parse_bool($row->lehre);
- $this->standort_id = $row->standort_id;
+ $this->standort_id = $row->standort_id;
$this->freigabegrenze = $row->freigabegrenze;
}
else
@@ -147,7 +147,7 @@ class organisationseinheit extends basis_db
return true;
}
-
+
/**
* Laedt alle Organisationseinheiten an oberster Stelle
*
@@ -156,13 +156,13 @@ class organisationseinheit extends basis_db
public function getHeads()
{
$qry = "SELECT * FROM public.tbl_organisationseinheit WHERE oe_parent_kurzbz is null";
-
+
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new organisationseinheit();
-
+
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->oe_parent_kurzbz = $row->oe_parent_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
@@ -170,18 +170,18 @@ class organisationseinheit extends basis_db
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->mailverteiler = $this->db_parse_bool($row->mailverteiler);
$obj->lehre = $this->db_parse_bool($row->lehre);
-
+
$this->result[] = $obj;
}
return true;
}
- else
+ else
{
$this->errormsg = 'Fehler bei Abfrage';
return false;
}
}
-
+
/**
* Liefert die ChildNodes einer Organisationseinheit. Optional kann ein Typ übergeben werden, welchem das Child entspricht
*
@@ -192,23 +192,23 @@ class organisationseinheit extends basis_db
public function getChilds($oe_kurzbz, $organisationseinheittyp_kurzbz = null)
{
$childs[] = $oe_kurzbz;
-
+
$dbversion = $this->db_version();
if($dbversion['server']>=8.4)
{
//ab PostgreSQL Version 8.4 wird die Rekursion von der DB aufgeloest
$qry = "
- WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
+ WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
(
- SELECT oe_kurzbz, oe_parent_kurzbz, organisationseinheittyp_kurzbz FROM public.tbl_organisationseinheit
+ SELECT oe_kurzbz, oe_parent_kurzbz, organisationseinheittyp_kurzbz FROM public.tbl_organisationseinheit
WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
UNION ALL
- SELECT o.oe_kurzbz, o.oe_parent_kurzbz, o.organisationseinheittyp_kurzbz FROM public.tbl_organisationseinheit o, oes
+ SELECT o.oe_kurzbz, o.oe_parent_kurzbz, o.organisationseinheittyp_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_parent_kurzbz=oes.oe_kurzbz
)
SELECT oe_kurzbz, organisationseinheittyp_kurzbz
FROM oes";
-
+
if ($organisationseinheittyp_kurzbz != '')
{
$qry .= " WHERE organisationseinheittyp_kurzbz = ".$this->db_add_param($organisationseinheittyp_kurzbz);
@@ -221,17 +221,17 @@ class organisationseinheit extends basis_db
$childs[] = $row->oe_kurzbz;
}
}
- else
+ else
{
$this->errormsg = 'Fehler beim Ermitteln der Childs';
}
return $childs;
}
- else
- {
+ else
+ {
//vor 8.4 muss die Rekursion in PHP aufgeloest werden
$qry = "SELECT * FROM public.tbl_organisationseinheit WHERE oe_parent_kurzbz = ".$this->db_add_param($oe_kurzbz);
-
+
if($myresult = $this->db_query($qry))
{
while($row = $this->db_fetch_object($myresult))
@@ -239,14 +239,14 @@ class organisationseinheit extends basis_db
$childs = array_merge($childs, $this->getChilds($row->oe_kurzbz));
}
}
- else
+ else
{
$this->errormsg = 'Fehler beim Ermitteln der Childs';
}
return $childs;
}
}
-
+
/**
* Liefert die Direkten KindElemente der Organisationseinheit
*
@@ -254,10 +254,10 @@ class organisationseinheit extends basis_db
* @return Array mit den Childs inkl derm Uebergebenen Element
*/
public function getDirectChilds($oe_kurzbz)
- {
+ {
$childs = array();
$qry = "SELECT * FROM public.tbl_organisationseinheit WHERE oe_parent_kurzbz = ".$this->db_add_param($oe_kurzbz)." ORDER BY organisationseinheittyp_kurzbz DESC, bezeichnung";
-
+
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
@@ -265,13 +265,13 @@ class organisationseinheit extends basis_db
$childs[] = $row->oe_kurzbz;
}
}
- else
+ else
{
$this->errormsg = 'Fehler beim Ermitteln der Childs';
}
return $childs;
}
-
+
/**
* Speichert eine Organisationseinheit
*
@@ -282,11 +282,11 @@ class organisationseinheit extends basis_db
{
if(is_null($new))
$new = $this->new;
-
+
if($new)
{
//Neu anlegen
- $qry = 'INSERT INTO public.tbl_organisationseinheit(oe_kurzbz, oe_parent_kurzbz, bezeichnung,
+ $qry = 'INSERT INTO public.tbl_organisationseinheit(oe_kurzbz, oe_parent_kurzbz, bezeichnung,
organisationseinheittyp_kurzbz, aktiv, mailverteiler, lehre) VALUES('.
$this->db_add_param($this->oe_kurzbz).','.
$this->db_add_param($this->oe_parent_kurzbz).','.
@@ -296,19 +296,19 @@ class organisationseinheit extends basis_db
$this->db_add_param($this->mailverteiler, FHC_BOOLEAN).','.
$this->db_add_param($this->lehre, FHC_BOOLEAN).');';
}
- else
+ else
{
if($this->oe_kurzbz=='')
{
$this->errormsg = 'Kurzbezeichnung darf nicht leer sein';
return false;
}
-
+
if($this->oe_kurzbz_orig=='')
{
$this->oe_kurzbz_orig=$this->oe_kurzbz;
}
-
+
$qry = 'UPDATE public.tbl_organisationseinheit SET '.
' oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).','.
' oe_parent_kurzbz='.$this->db_add_param($this->oe_parent_kurzbz).','.
@@ -319,7 +319,7 @@ class organisationseinheit extends basis_db
' lehre='.$this->db_add_param($this->lehre, FHC_BOOLEAN).
" WHERE oe_kurzbz=".$this->db_add_param($this->oe_kurzbz_orig, FHC_STRING, false).";";
}
-
+
if($this->db_query($qry))
{
return true;
@@ -330,7 +330,7 @@ class organisationseinheit extends basis_db
return false;
}
}
-
+
/**
* Laedt alle Organisationseinheittypen
*
@@ -339,28 +339,28 @@ class organisationseinheit extends basis_db
public function getTypen()
{
$qry = "SELECT * FROM public.tbl_organisationseinheittyp ORDER BY bezeichnung";
-
+
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new organisationseinheit();
-
+
$obj->organisationseinheittyp_kurzbz = $row->organisationseinheittyp_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
-
+
$this->result[] = $obj;
}
return true;
}
- else
+ else
{
$this->errormsg = 'Fehler beim Laden der Typen';
return false;
}
}
-
+
/**
* Laedt die Organisationseinheiten die als Array uebergeben werden
* @param $kurzbzs Array mit den kurzbezeichnungen
@@ -372,9 +372,9 @@ class organisationseinheit extends basis_db
{
if(count($kurzbzs)==0)
return true;
-
+
$kurzbzs = $this->db_implode4SQL($kurzbzs);
-
+
$qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE oe_kurzbz in('.$kurzbzs.')';
if ($aktiv)
$qry.=' AND aktiv=true';
@@ -386,12 +386,12 @@ class organisationseinheit extends basis_db
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
- }
+ }
while($row = $this->db_fetch_object($result))
{
$obj = new organisationseinheit();
-
+
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->oe_parent_kurzbz = $row->oe_parent_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
@@ -399,13 +399,13 @@ class organisationseinheit extends basis_db
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->mailverteiler = $this->db_parse_bool($row->mailverteiler);
$obj->lehre = $this->db_parse_bool($row->lehre);
-
+
$this->result[] = $obj;
}
return true;
}
-
+
/**
* Laedt die Organisationseinheiten in ein Array
* das Array enthaelt danach Key alle Organisationseinheiten und als Value dessen Parent OE
@@ -413,7 +413,7 @@ class organisationseinheit extends basis_db
public function loadParentsArray()
{
$qry = 'SELECT * FROM public.tbl_organisationseinheit';
-
+
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
@@ -422,22 +422,22 @@ class organisationseinheit extends basis_db
}
}
}
-
+
/**
* Liefert die OEs die im Tree ueberhalb der uebergebene OE liegen
- *
+ *
* @param $oe_kurzbz
*/
public function getParents($oe_kurzbz)
{
$parents=array();
-
- $qry="WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
+
+ $qry="WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
(
- SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
- WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)." and aktiv = true
+ SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
+ WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)." and aktiv = true
UNION ALL
- SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
+ SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_kurzbz=oes.oe_parent_kurzbz and aktiv = true
)
SELECT oe_kurzbz
@@ -454,46 +454,46 @@ class organisationseinheit extends basis_db
{
$this->errormsg='Fehler beim Laden der Daten';
return false;
- }
+ }
}
-
+
/**
- * Get names and types of ALL parent organisational units recursivly for all ascending
+ * Get names and types of ALL parent organisational units recursivly for all ascending
* org units of given organisational unit. (All parent organisational units)
* @param string $oe_kurzbz
- * @return boolean True on success. If true, returns object-array with name
- * and types of given organisational unit and of its parent organisational units.
+ * @return boolean True on success. If true, returns object-array with name
+ * and types of given organisational unit and of its parent organisational units.
*/
public function getParents_withOEType($oe_kurzbz)
{
$parents=array();
-
+
$qry="
- WITH RECURSIVE
- oes (oe_kurzbz, oe_parent_kurzbz) AS
+ WITH RECURSIVE
+ oes (oe_kurzbz, oe_parent_kurzbz) AS
(
- SELECT
- oe_kurzbz,
+ SELECT
+ oe_kurzbz,
oe_parent_kurzbz,
bezeichnung AS oe_bezeichnung,
- organisationseinheittyp_kurzbz
+ organisationseinheittyp_kurzbz
FROM
- public.tbl_organisationseinheit
- WHERE
- oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
- AND
+ public.tbl_organisationseinheit
+ WHERE
+ oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
+ AND
aktiv = true
-
+
UNION ALL
-
+
SELECT
- o.oe_kurzbz,
+ o.oe_kurzbz,
o.oe_parent_kurzbz,
o.bezeichnung,
o.organisationseinheittyp_kurzbz
FROM
- public.tbl_organisationseinheit o, oes
- WHERE
+ public.tbl_organisationseinheit o, oes
+ WHERE
o.oe_kurzbz = oes.oe_parent_kurzbz
AND
aktiv = true
@@ -502,33 +502,33 @@ class organisationseinheit extends basis_db
oe_kurzbz,
oe_bezeichnung,
tbl_organisationseinheittyp.bezeichnung AS oe_typ_bezeichnung
- FROM
+ FROM
oes
JOIN
public.tbl_organisationseinheittyp
USING (organisationseinheittyp_kurzbz)";
-
-
-
+
+
+
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new stdClass();
-
+
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->oe_bezeichnung = $row->oe_bezeichnung;
$obj->oe_typ_bezeichnung = (!is_null($row->oe_typ_bezeichnung) ? $row->oe_typ_bezeichnung : '');
-
+
$this->result[]= $obj;
- }
+ }
return $this->result;
}
else
{
$this->errormsg='Fehler beim Laden der Daten';
return false;
- }
+ }
}
/**
* Prueft ob $child eine Organisationseinheit unterhalb der OE $oe_kurzbz ist
@@ -543,13 +543,13 @@ class organisationseinheit extends basis_db
{
$this->loadParentsArray();
}
-
+
if(!isset(organisationseinheit::$oe_parents_array[$child]))
{
$this->errormsg = 'Organisationseinheit existiert nicht';
return false;
}
-
+
$childs = array_keys(organisationseinheit::$oe_parents_array, $oe_kurzbz);
foreach ($childs as $row)
@@ -559,15 +559,15 @@ class organisationseinheit extends basis_db
return true;
}
else
- {
+ {
if($this->isChild($row, $child))
return true;
}
}
-
- return false;
+
+ return false;
}
-
+
/**
* Baut die Datenstruktur für senden als JSON Objekt auf
*/
@@ -588,8 +588,8 @@ class organisationseinheit extends basis_db
$obj->lehre = $oeEinheit->lehre;
$data[]=$obj;
}
- }
- else
+ }
+ else
{
$obj = new stdClass();
$obj->oe_kurzbz = $this->oe_kurzbz;
@@ -603,7 +603,7 @@ class organisationseinheit extends basis_db
}
return $data;
}
-
+
/**
* Lädt Organisationseinheiten nach ihrem Typ
* @param type $oetyp_kurzbz
@@ -611,10 +611,10 @@ class organisationseinheit extends basis_db
*/
public function getByTyp($oetyp_kurzbz)
{
- $qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE organisationseinheittyp_kurzbz='.$this->db_add_param($oetyp_kurzbz).';';
-
- if($this->db_query($qry))
- {
+ $qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE organisationseinheittyp_kurzbz='.$this->db_add_param($oetyp_kurzbz).';';
+
+ if($this->db_query($qry))
+ {
while($row = $this->db_fetch_object())
{
$obj = new organisationseinheit();
@@ -630,14 +630,14 @@ class organisationseinheit extends basis_db
$this->result[] = $obj;
}
return true;
- }
- else
- {
+ }
+ else
+ {
$this->errormsg = 'Fehler beim Laden der Organisationseinheiten';
return false;
- }
+ }
}
-
+
/**
* Sucht nach einer Organisationseinheit
* @param type $searchItem
@@ -645,21 +645,21 @@ class organisationseinheit extends basis_db
*/
public function search($searchItem)
{
- $qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE
- (
- LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
- OR
- LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
- )';
- foreach($searchItem as $value)
+ $qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE
+ (
+ LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
+ OR
+ LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
+ )';
+ foreach($searchItem as $value)
{
$qry.=' OR (LOWER(oe_kurzbz)=LOWER('.$this->db_add_param($value).'))
- OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
+ OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
}
- $qry.= ' ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
+ $qry.= ' ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
- if($this->db_query($qry))
- {
+ if($this->db_query($qry))
+ {
while($row = $this->db_fetch_object())
{
$obj = new organisationseinheit();
@@ -675,20 +675,20 @@ class organisationseinheit extends basis_db
$this->result[] = $obj;
}
return true;
- }
- else
- {
+ }
+ else
+ {
$this->errormsg = 'Fehler beim Laden der Organisationseinheiten';
return false;
- }
+ }
}
-
+
/**
* Laedt alle Organisationseinheiten, sortiert nach den am haeufigsten vom User in der Zeitaufzeichnung verwendeten
- *
+ *
* Optionaler Zeitraum (Tage in die Vergangenheit), in denen die OE verwendet wurde
* Optionale Anzahl an Ereignissen im angegebenen Zeitraum, um die OE zu beruecksichtigen
- *
+ *
* @param string $user uid
* @param integer $zeitraum Anzahl Tage in die Vergangenheit, die fuer das Auftreten der OE beruecksichtigt werden sollen
* @param integer $anzahl_ereignisse default: 3 Wie oft soll diese OE mindestens in $zeitraum vorkommen, um beruecksichtigt zu werden
@@ -701,13 +701,13 @@ class organisationseinheit extends basis_db
$this->errormsg = "anzahl_ereignisse muss eine gueltige Zahl sein";
return false;
}
-
+
if (!is_null($zeitraum) && $zeitraum>0 && is_numeric($zeitraum))
$zeit = "AND tbl_zeitaufzeichnung.start>=(now()::date-$zeitraum)";
- else
+ else
$zeit = "";
-
- $qry = "SELECT
+
+ $qry = "SELECT
oe_kurzbz,
oe_parent_kurzbz,
bezeichnung,
@@ -720,10 +720,10 @@ class organisationseinheit extends basis_db
WHERE tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
$zeit
GROUP BY tbl_organisationseinheit.oe_kurzbz HAVING COUNT(*) > $anzahl_ereignisse
-
+
UNION
-
- SELECT
+
+ SELECT
oe_kurzbz,
oe_parent_kurzbz,
bezeichnung,
@@ -738,8 +738,8 @@ class organisationseinheit extends basis_db
$qry .=" ORDER BY count DESC,bezeichnung,oe_kurzbz";
- if($this->db_query($qry))
- {
+ if($this->db_query($qry))
+ {
while($row = $this->db_fetch_object())
{
$obj = new organisationseinheit();
@@ -755,29 +755,29 @@ class organisationseinheit extends basis_db
$this->result[] = $obj;
}
return true;
- }
- else
- {
+ }
+ else
+ {
$this->errormsg = 'Fehler beim Laden der Organisationseinheiten';
return false;
- }
+ }
}
-
- /**
- * Gibt alle Standorte zurück
- * @param $aktiv
- * @param $lehre
- * @return boolean|array false im Fehlerfall, ansonsten ein Array
- */
- public function getAllStandorte($aktiv=null, $lehre=null)
+
+ /**
+ * Gibt alle Standorte zurück
+ * @param $aktiv
+ * @param $lehre
+ * @return boolean|array false im Fehlerfall, ansonsten ein Array
+ */
+ public function getAllStandorte($aktiv=null, $lehre=null)
{
$result = array();
- $qry = "SELECT DISTINCT standort FROM public.tbl_organisationseinheit WHERE standort IS NOT NULL";
+ $qry = "SELECT DISTINCT standort FROM public.tbl_organisationseinheit WHERE standort IS NOT NULL";
if(!is_null($aktiv))
$qry.=" AND aktiv=".$this->db_add_param($aktiv, FHC_BOOLEAN);
- if(!is_null($lehre))
+ if(!is_null($lehre))
$qry.=" AND lehre=".$this->db_add_param($lehre, FHC_BOOLEAN);
if($this->db_query($qry))
@@ -786,10 +786,10 @@ class organisationseinheit extends basis_db
{
$result[] = $row->standort;
}
-
- return $result;
+
+ return $result;
}
- else
+ else
{
$this->errormsg = 'Fehler beim Laden der Standorte';
return false;
@@ -800,7 +800,7 @@ class organisationseinheit extends basis_db
* Ermittelt die Stundenobergrenze fuer Lektoren
* Dabei wird im OE Baum nach oben nach Stundengrenzen gesucht und die niedrigste Stundengrenze ermittelt
* @param $oe_kurzbz Organisationseinheit
- * @param $fixangestellt boolean legt fest ob die Grenze
+ * @param $fixangestellt boolean legt fest ob die Grenze
* fuer Freie oder Fixangestellte Lektoren ermittelt werden soll
* @return array(oe_kurzbz, numeric Anzahl der Stunden)
*/
@@ -812,16 +812,16 @@ class organisationseinheit extends basis_db
$fixfrei='frei';
$qry = "
- WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
+ WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
(
- SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
+ SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
UNION ALL
- SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
+ SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_kurzbz=oes.oe_parent_kurzbz
)
SELECT oe_kurzbz, warn_semesterstunden_".$fixfrei." as stunden
- FROM oes JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
+ FROM oes JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
ORDER BY warn_semesterstunden_".$fixfrei." asc limit 1";
if($result = $this->db_query($qry))
@@ -832,11 +832,11 @@ class organisationseinheit extends basis_db
}
}
}
-
+
/**
* Get full term of organisational unit type
* @param string $oetyp_kurzbz
- * @return boolean True on success. If true, returns full term of given organisational unit type.
+ * @return boolean True on success. If true, returns full term of given organisational unit type.
*/
public function getOETypBezeichnung($oetyp_kurzbz)
{
@@ -849,7 +849,7 @@ class organisationseinheit extends basis_db
public.tbl_organisationseinheittyp
WHERE
organisationseinheittyp_kurzbz = '. $this->db_add_param($oetyp_kurzbz). ';';
-
+
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
@@ -860,7 +860,7 @@ class organisationseinheit extends basis_db
else
{
return false;
- }
+ }
}
else
{
@@ -868,11 +868,59 @@ class organisationseinheit extends basis_db
return false;
}
}
- else
+ else
{
$this->errormsg = 'OE Typ fehlt bzw. darf nicht leer sein.';
return false;
}
}
+
+ /**
+ * Liefert alle Organisationseinheiten die bei Lehrveranstaltungen als
+ * Lehrfach verwendet werden.
+ *
+ * @return boolean true wenn erfolgreich, false im Fehlerfall
+ */
+ public function getLehrfachOEs()
+ {
+ $qry = "
+ SELECT distinct tbl_organisationseinheit.*
+ FROM
+ lehre.tbl_lehrveranstaltung
+ JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
+ WHERE
+ tbl_organisationseinheit.aktiv
+ AND EXISTS(
+ SELECT 1 FROM lehre.tbl_lehreinheit
+ WHERE lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
+ )
+ AND tbl_organisationseinheit.lehre
+ ORDER BY organisationseinheittyp_kurzbz, bezeichnung
+ ";
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new organisationseinheit();
+
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->oe_parent_kurzbz = $row->oe_parent_kurzbz;
+ $obj->bezeichnung = $row->bezeichnung;
+ $obj->organisationseinheittyp_kurzbz = $row->organisationseinheittyp_kurzbz;
+ $obj->aktiv = $this->db_parse_bool($row->aktiv);
+ $obj->mailverteiler = $this->db_parse_bool($row->mailverteiler);
+ $obj->lehre = $this->db_parse_bool($row->lehre);
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Organisationseinheiten';
+ return false;
+ }
+ }
}
?>
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/public/js/DialogLib.js b/public/js/DialogLib.js
index 934634af1..05558844a 100644
--- a/public/js/DialogLib.js
+++ b/public/js/DialogLib.js
@@ -17,36 +17,36 @@ var FHC_DialogLib = {
*/
alertSuccess: function(message)
{
- var html = " "+message+"
";
- FHC_DialogLib.alertDefault('Success', html);
- $(".ui-dialog-titlebar").addClass("alert-success text-center");
- $(".glyphicon-ok-sign").css("color", "#3c763d");
- FHC_DialogLib._formatShortDialog();
+ FHC_DialogLib._displayDialog('Success', message, 'ok-sign', 'alert-success');
},
+
/**
* Show error message as jQueryUI alert. Works only with bootstrap.
* @param message
*/
alertError: function(message)
{
- var html = " "+message+"
";
- FHC_DialogLib.alertDefault('Error occured', html);
- $(".ui-dialog-titlebar").addClass("alert-danger text-center");
- $(".glyphicon-warning-sign").css("color", "#a94442");
- FHC_DialogLib._formatShortDialog();
+ FHC_DialogLib._displayDialog('Error occured', message, 'warning-sign', 'alert-danger');
},
+
+ /**
+ * Show warning message as jQueryUI alert. Works only with bootstrap.
+ * @param message
+ */
+ alertWarning: function(message)
+ {
+ FHC_DialogLib._displayDialog('Warning', message, 'warning-sign', 'alert-warning');
+ },
+
/**
* Show info message as jQueryUI alert. Works only with bootstrap.
* @param message
*/
alertInfo: function(message)
{
- var html = " "+message+"
";
- FHC_DialogLib.alertDefault('Info', html);
- $(".ui-dialog-titlebar").addClass("alert-info text-center");
- $(".glyphicon-info-sign").css("color", "#245269");
- FHC_DialogLib._formatShortDialog();
+ FHC_DialogLib._displayDialog('Info', message, 'info-sign', 'alert-info');
},
+
/**
* Default jQueryUI alert
* @param title shown as message box heading
@@ -79,6 +79,24 @@ var FHC_DialogLib = {
}]
});
},
+
+ /**
+ * displays the dialog box
+ * @param heading
+ * @param message
+ * @param icon
+ * @param colorClass for heading and icon
+ * @private
+ */
+ _displayDialog: function(heading, message, icon, colorClass)
+ {
+ var html = " "+message+"
";
+ FHC_DialogLib.alertDefault(heading, html);
+ $(".ui-dialog-titlebar").addClass(colorClass+" text-center");
+ $(".glyphicon-"+icon).addClass(colorClass);
+ FHC_DialogLib._formatShortDialog();
+ },
+
/**
* formats jQueryUI messagebox as "short", i.e. containing only one line of text,
* centers the text
@@ -90,6 +108,7 @@ var FHC_DialogLib = {
$(".ui-dialog-buttonpane.ui-widget-content").css("padding", ".3em .4em .5em .4em");
$(".ui-dialog .ui-dialog-content").css("padding", "0");
$(".ui-dialog-buttonset button").css("margin", "0");
+ $(".dialogmessage i.glyphicon").css("background-color", "transparent");
}
};
diff --git a/public/js/FilterWidget.js b/public/js/FilterWidget.js
index 0f1889486..36c313783 100644
--- a/public/js/FilterWidget.js
+++ b/public/js/FilterWidget.js
@@ -851,6 +851,12 @@ var FHC_FilterWidget = {
for (var i = 0; i < data.dataset.length; i++)
{
var record = data.dataset[i];
+
+ if ($.isEmptyObject(record))
+ {
+ continue;
+ }
+
var strHtml = "";
if (data.checkboxes != null && data.checkboxes != "")
diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js
index d4d0d5cb9..087586c95 100644
--- a/public/js/infocenter/infocenterDetails.js
+++ b/public/js/infocenter/infocenterDetails.js
@@ -118,9 +118,6 @@ $(document).ready(function ()
var InfocenterDetails = {
- genericSaveError: function() {
- FHC_DialogLib.alertError("error when saving");
- },
openZgvInfoForPrestudent: function(prestudent_id)
{
var screenwidth = screen.width;
@@ -141,15 +138,16 @@ var InfocenterDetails = {
},
{
successCallback: function(data, textStatus, jqXHR) {
- if (data !== false)
+ if (FHC_AjaxClient.hasData(data))
{
- if (data === null)
+ var timestamp = data.retval[0];
+ if (timestamp === "")
{
$("#formalgeprueftam_" + akteid).text("");
}
else
{
- var fgdatum = $.datepicker.parseDate("yy-mm-dd", data);
+ var fgdatum = $.datepicker.parseDate("yy-mm-dd", timestamp);
var gerfgdatum = $.datepicker.formatDate("dd.mm.yy", fgdatum);
$("#formalgeprueftam_" + akteid).text(gerfgdatum);
}
@@ -159,10 +157,10 @@ var InfocenterDetails = {
}
else
{
- InfocenterDetails.genericSaveError();
+ InfocenterDetails._genericSaveError();
}
},
- errorCallback: InfocenterDetails.genericSaveError,
+ errorCallback: InfocenterDetails._genericSaveError,
veilTimeout: 0
}
);
@@ -174,12 +172,13 @@ var InfocenterDetails = {
data,
{
successCallback: function(data, textStatus, jqXHR) {
- if (data !== true)
+ if (!FHC_AjaxClient.hasData(data) || data.retval[0] !== true)
{
- FHC_DialogLib.alertError("error when saving ZGV prio");
+ InfocenterDetails._genericSaveError();
}
InfocenterDetails._refreshZgv(true);
- }
+ },
+ errorCallback: InfocenterDetails._genericSaveError
}
);
},
@@ -213,6 +212,10 @@ var InfocenterDetails = {
btn.after(" keine ZGV vorhanden");
}
},
+ errorCallback: function()
+ {
+ FHC_DialogLib.alertError('Error when getting last ZGV');
+ },
veilTimeout: 0
}
);
@@ -261,9 +264,10 @@ var InfocenterDetails = {
}
else
{
- FHC_DialogLib.alertError("error when saving Absage");
+ InfocenterDetails._genericSaveError();
}
- }
+ },
+ errorCallback: InfocenterDetails._genericSaveError
}
);
},
@@ -273,27 +277,29 @@ var InfocenterDetails = {
CALLED_PATH + '/saveFreigabe',
{"prestudent_id": freigabeData.prestudent_id, "statusgrund_id": freigabeData.statusgrund_id},
{
- successCallback: function(freigabeResponseData, textStatus, jqXHR) {
+ successCallback: function(data, textStatus, jqXHR) {
- if (FHC_AjaxClient.hasData(freigabeResponseData))
+ if (FHC_AjaxClient.hasData(data))
{
+ var freigabeResponseData = FHC_AjaxClient.getData(data);
+
+ if (freigabeResponseData.nonCriticalErrors && freigabeResponseData.nonCriticalErrors.length > 0
+ && typeof freigabeResponseData.nonCriticalErrors == "string")
+ {
+ FHC_DialogLib.alertWarning(freigabeResponseData.nonCriticalErrors);
+ }
FHC_AjaxClient.showVeil();
InfocenterDetails.initFrgMessageSend(freigabeData);
InfocenterDetails._refreshZgv();
FHC_AjaxClient.hideVeil();
InfocenterDetails._refreshLog();
}
- else if (freigabeResponseData.error === 2 && parseInt(freigabeResponseData.retval.prestudent_id, 10))
- {
- FHC_DialogLib.alertError("error when setting accepted documents");
- InfocenterDetails._refreshZgv();
- InfocenterDetails._refreshLog();
- }
else
{
- FHC_DialogLib.alertError("error when saving Freigabe");
+ InfocenterDetails._genericSaveError();
}
- }
+ },
+ errorCallback: InfocenterDetails._genericSaveError
}
);
},
@@ -388,13 +394,17 @@ var InfocenterDetails = {
null,
{
successCallback: function(data, textStatus, jqXHR) {
- if (data)
+ if (FHC_AjaxClient.hasData(data))
{
- var engdate = $.datepicker.parseDate("yy-mm-dd", data);
+ var engdate = $.datepicker.parseDate("yy-mm-dd", FHC_AjaxClient.getData(data)[0]);
var gerdate = $.datepicker.formatDate("dd.mm.yy", engdate);
$("#parkdate").val(gerdate);
}
},
+ errorCallback: function()
+ {
+ FHC_DialogLib.alertError("error when getting Studienjahr end");
+ },
veilTimeout: 0
}
);
@@ -406,10 +416,18 @@ var InfocenterDetails = {
null,
{
successCallback: function(data, textStatus, jqXHR) {
- InfocenterDetails._refreshParking(data);
- InfocenterDetails._refreshLog();
- if (data === null)
- InfocenterDetails.getStudienjahrEnd();
+ if (FHC_AjaxClient.hasData(data))
+ {
+ var parkedDate = FHC_AjaxClient.getData(data)[0];
+ InfocenterDetails._refreshParking(parkedDate);
+ InfocenterDetails._refreshLog();
+ if (parkedDate === null)
+ InfocenterDetails.getStudienjahrEnd();
+ }
+ },
+ errorCallback: function()
+ {
+ FHC_DialogLib.alertError("error when getting parked status");
},
veilTimeout: 0
}
@@ -450,13 +468,12 @@ var InfocenterDetails = {
},
{
successCallback: function(data, textStatus, jqXHR) {
- if (Array.isArray(data))
+ if (FHC_AjaxClient.hasData(data))
{
- if (data.length > 0)
- InfocenterDetails.getParkedDate(personid);
- else
- $("#unparkmsg").removeClass().addClass("text-warning").text(FHC_PhrasesLib.t('infocenter', 'nichtsZumAusparken'));
+ InfocenterDetails.getParkedDate(personid);
}
+ else
+ $("#unparkmsg").removeClass().addClass("text-warning").text(FHC_PhrasesLib.t('infocenter', 'nichtsZumAusparken'));
},
errorCallback: function(){
$("#unparkmsg").removeClass().addClass("text-danger").text(FHC_PhrasesLib.t('infocenter', 'fehlerBeimAusparken'));
@@ -472,32 +489,39 @@ var InfocenterDetails = {
null,
{
successCallback: callback,
+ errorCallback: function()
+ {
+ FHC_DialogLib.alertError("error when getting prestudent data")
+ },
veilTimeout: 0
}
);
},
initFrgMessageSend: function(freigabedata)
{
- var callback = function (data)
+ var personid = $("#hiddenpersonid").val();
+
+ var callback = function (prestudentresponse)
{
- if (data == null)
+ if (!FHC_AjaxClient.hasData(prestudentresponse))
return;
+ var prestudentdata = prestudentresponse.retval;
+
var prestudent_id = freigabedata.prestudent_id;
var statusgrund_id = freigabedata.statusgrund_id;
var rtfreigabe = !$.isNumeric(statusgrund_id);
- // check if a prestudent in same semester is already freigegeben - then not send message again
var rtFreigegeben = false;
var stgFreigegeben = false;
var receiverPrestudentstatus = null;
//get prestudentstatus of message receiver
- for(var i = 0; i < data.length; i++)
+ for(var i = 0; i < prestudentdata.length; i++)
{
- if (data[i].prestudentstatus.prestudent_id === prestudent_id)
+ if (prestudentdata[i].prestudentstatus.prestudent_id === prestudent_id)
{
- receiverPrestudentstatus = data[i].prestudentstatus;
+ receiverPrestudentstatus = prestudentdata[i].prestudentstatus;
break;
}
}
@@ -506,19 +530,20 @@ var InfocenterDetails = {
return;
//check other prestudentstati wether already freigegeben
- for(var j = 0; j < data.length; j++)
+ for(var j = 0; j < prestudentdata.length; j++)
{
- var prestudent = data[j];
+ var prestudent = prestudentdata[j];
var prestudentstatus = prestudent.prestudentstatus;
var id = prestudentstatus.prestudent_id;
if (id !== prestudent_id)
{
var fitfreigegeben = $.inArray(prestudentstatus.bezeichnung_statusgrund[0], STGFREIGABE_MESSAGESEND_EXCEPTIONS) >= 0;
+ var fitstg = $.inArray(parseInt(prestudent.studiengang_kz), FIT_PROGRAMM_STUDIENGAENGE) >= 0;
if (receiverPrestudentstatus.studiensemester_kurzbz === prestudentstatus.studiensemester_kurzbz
&& prestudentstatus.bestaetigtam !== null && prestudentstatus.status_kurzbz === "Interessent"
- && (prestudent.studiengangtyp === "b"))
+ && (prestudent.studiengangtyp === "b" || fitstg))
{
if (prestudentstatus.statusgrund_id === null)
{
@@ -579,7 +604,7 @@ var InfocenterDetails = {
{
var statusgrundbez = freigabedata.statusgrundbezeichnung ? freigabedata.statusgrundbezeichnung : "";
- // if Freigabe to Studiengang, send StgFreigabe Message if not already sent
+ //if Freigabe to Studiengang, send StgFreigabe Message if not already sent
if (!stgFreigegeben && $.inArray(statusgrundbez, STGFREIGABE_MESSAGESEND_EXCEPTIONS) < 0)
{
InfocenterDetails.sendFreigabeMessage(prestudent_id, STGFREIGABE_MESSAGE_VORLAGE, msgvars);
@@ -587,11 +612,9 @@ var InfocenterDetails = {
}
};
- var personid = $("#hiddenpersonid").val();
-
InfocenterDetails.getPrestudentData(
personid, callback
- )
+ );
},
sendFreigabeMessage: function(prestudentid, vorlage_kurzbz, msgvars)
{
@@ -607,6 +630,9 @@ var InfocenterDetails = {
successCallback: function(data, textStatus, jqXHR) {
InfocenterDetails._refreshMessages();
InfocenterDetails._refreshLog();
+ },
+ errorCallback: function() {
+ FHC_DialogLib.alertWarning("Freigabe message could not be sent");
}
}
);
@@ -684,7 +710,8 @@ var InfocenterDetails = {
$(".freigabebtn").click(function()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
- InfocenterDetails._toggleFreigabeDialog(prestudentid, true);//true - Reihungstestfreigabe
+ //true - Reihungstestfreigabe
+ InfocenterDetails._toggleFreigabeDialog(prestudentid, true);
}
);
@@ -695,14 +722,14 @@ var InfocenterDetails = {
var statusgrund_id = statusgrel.val();
var statusgrund = statusgrel.find("option:selected").text();
- if (statusgrund_id === 'null')
+ if (!$.isNumeric(statusgrund_id))
{
$("#frgstatusgrselect_" + prestudentid).addClass("has-error");
}
else
{
- var rtfreigabe = false;//no Reihungstestfreigabe
- InfocenterDetails._toggleFreigabeDialog(prestudentid, rtfreigabe, statusgrund);
+ //false - no Reihungstestfreigabe
+ InfocenterDetails._toggleFreigabeDialog(prestudentid, false, statusgrund);
}
}
);
@@ -923,5 +950,8 @@ var InfocenterDetails = {
_notizError: function(phrasename)
{
$("#notizmsg").text(FHC_PhrasesLib.t('ui', phrasename));
+ },
+ _genericSaveError: function() {
+ FHC_DialogLib.alertError("error when saving!");
}
};
diff --git a/rdf/lehrveranstaltungszeugnis.rdf.php b/rdf/lehrveranstaltungszeugnis.rdf.php
index 64e6e93af..810929cfb 100644
--- a/rdf/lehrveranstaltungszeugnis.rdf.php
+++ b/rdf/lehrveranstaltungszeugnis.rdf.php
@@ -147,6 +147,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$sws = $lvrow->semesterstunden/$wochen;
$ects = $lvrow->ects;
$lvbezeichnung = $lvrow->bezeichnung;
+ $lvbezeichnung_eng = $lvrow->bezeichnung_english;
$lvstg = $lvrow->studiengang_kz;
$sws_lv = $lvrow->sws;
}
@@ -172,6 +173,26 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
}
+ $lehrinhalte_eng = '';
+ $lehrziele_eng = '';
+ $infoqry = "SELECT * FROM campus.tbl_lvinfo WHERE sprache='English' AND lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
+ if($db->db_query($infoqry))
+ {
+ if ($inforow = $db->db_fetch_object())
+ {
+ $lehrinhalte_eng_arr = explode("
",$inforow->lehrinhalte);
+ for ($i = 0; $i < sizeof($lehrinhalte_arr); $i++)
+ {
+ $lehrinhalte_eng .= $lehrinhalte_eng_arr[$i].'\n';
+ }
+ $lehrziele_eng_arr = explode("
",$inforow->lehrziele);
+ for ($i = 0; $i < sizeof($lehrziele_eng_arr); $i++)
+ {
+ $lehrziele_eng .= $lehrziele_eng_arr[$i].'\n';
+ }
+ }
+ }
+
$xml = "";
$xml .= "";
@@ -231,6 +252,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n ".$stgl."";
$datum_aktuell = date('d.m.Y');
$xml .= "\n Wien, am ".$datum_aktuell."";
+ $xml .= "\n ".$datum_aktuell."";
$obj = new zeugnisnote();
@@ -259,11 +281,13 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
else
$stg_art='';
$xml .= " ".$stg->bezeichnung."";
+ $xml .= " ".$stg->english."";
$xml .= " ".$stg_art."";
$xml .= " ".$stg->typ."";
$xml .= " ".sprintf('%04s',$lvstg)."";
$xml .= " ";
+ $xml .= " ";
$xml .= " ".$note."";
$xml .= " ".$note_bezeichnung."";
$xml .= " ".($sws==0?'':number_format(sprintf('%.1F',$sws),1))."";
@@ -272,10 +296,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= " ".$leiter_titel." ".$leiter_vorname." ".$leiter_nachname.($leiter_titelpost!=''?', '.$leiter_titelpost:'')."";
$xml .= " ";
$xml .= " ";
+ $xml .= " ";
+ $xml .= " ";
$xml .= " ";
}
$xml .= "";
echo $xml;
}
-?>
\ No newline at end of file
+?>
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index 6a2eb5137..79ca72971 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -2849,6 +2849,21 @@ if($result = $db->db_query($qry_column_desc))
}
}
+// App 'budget' hinzufügen
+if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='budget'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+
+ $qry = "INSERT INTO system.tbl_app(app) VALUES('budget');";
+
+ if(!$db->db_query($qry))
+ echo 'App: '.$db->db_last_error().'
';
+ else
+ echo '
Neue App budget in system.tbl_app hinzugefügt';
+ }
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute!
';
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index 27dbce891..5ec998876 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -425,6 +425,40 @@ $filters = array(
}
',
'oe_kurzbz' => null,
+ ),
+ array(
+ 'app' => 'budget',
+ 'dataset_name' => 'budgetoverview',
+ 'filter_kurzbz' => 'BudgetUebersicht',
+ 'description' => '{Budgetanträge Übersicht}',
+ 'sort' => 1,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Budgetanträge",
+ "columns": [
+ {"name": "Budgetantrag"},
+ {"name": "Kostenstelle"},
+ {"name": "Organisationseinheit"},
+ {"name": "Geschäftsjahr"},
+ {"name": "Budgetstatus"},
+ {"name": "Betrag"}
+ ],
+ "filters": [
+ {
+ "name": "Budgetstatus",
+ "condition": "Freigegeben",
+ "operation": "ncontains"
+ },
+ {
+ "name": "Geschäftsjahr",
+ "condition": "GJ2019-2020",
+ "operation": "contains"
+ }
+ ]
+ }
+ ',
+ 'oe_kurzbz' => null,
)
);
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 95cefaa85..bd28b2bd6 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -3269,6 +3269,46 @@ $phrases = array(
'insertvon' => 'system'
)
)
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'bewerbungMussAbgeschickt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die Bewerbung muss erst abgeschickt worden sein.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The application needs to be sent first.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'nurBachelorFreigeben',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nur Bachelorstudiengänge können freigegeben werden.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Only bachelor programmes can be approved.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
)
);
diff --git a/system/vorlage_zip/LVZeugnisEng.odt b/system/vorlage_zip/LVZeugnisEng.odt
new file mode 100644
index 000000000..59e88030e
Binary files /dev/null and b/system/vorlage_zip/LVZeugnisEng.odt differ
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/LehrveranstaltungszeugnisEng_0.xsl b/system/xsl/LehrveranstaltungszeugnisEng_0.xsl
new file mode 100644
index 000000000..d36ee25fa
--- /dev/null
+++ b/system/xsl/LehrveranstaltungszeugnisEng_0.xsl
@@ -0,0 +1,504 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Transcript of Records
+
+
+
+
+
+
+
+
+ Bachelor's
+
+
+ Master's
+
+
+
+
+ Degree Program
+
+
+
+
+
+
+
+
+
+ Student ID:
+
+
+
+
+
+
+ Program Code:
+
+
+
+
+
+
+
+ First Name/Last Name:
+
+
+
+ Date of Birth:
+
+
+
+
+ Herr
+
+
+ Frau
+
+
+ Herr/Frau
+
+
+ hat im als
+
+
+ ordentlicher Student
+
+
+ ordentliche Studentin
+
+
+ ordentliche/r Student/in
+
+
+ folgende Lehrveranstaltung an der FH Technikum Wien absolviert:
+
+
+
+
+
+
+
+
+ Course
+
+
+ SP/W 1
+
+
+ ECTS
+
+
+ Grade 2
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+ ¹ 1 Semester period per week = 45 minutes
+ ² Grades:excellent (1), good (2), satisfactory (3), sufficient (4), Credit based on previous experience/work (ar), Participated with success (met), passed (b),
+ successfully completed (ea), participated (tg)
+
+
+ After passing this course successfully students are able to ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Vienna,
+
+
+
+
+
+
+
+
+
+
+ Place, Date
+
+
+
+
+
+
+
+
+
+ Head of International Office
+
+
+ Program Director
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/system/xsl/Lehrveranstaltungszeugnis_Eng_9005.xsl b/system/xsl/Lehrveranstaltungszeugnis_Eng_9005.xsl
new file mode 100644
index 000000000..2233842e8
--- /dev/null
+++ b/system/xsl/Lehrveranstaltungszeugnis_Eng_9005.xsl
@@ -0,0 +1,481 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Transcript of Records
+
+
+
+
+ Bachelor's
+
+
+ Master's
+
+
+
+
+ Degree Program
+
+
+
+
+
+
+
+ Student ID:
+ Program Code:
+
+
+
+
+ First Name/Last Name:
+
+
+
+ Date of Birth:
+
+
+
+
+ Herr
+
+
+ Frau
+
+
+ Herr/Frau
+
+
+ hat im als
+
+
+ außerordentlicher Student
+
+
+ außerordentliche Studentin
+
+
+ außerordentliche/r Student/in
+
+
+ folgende Lehrveranstaltung an der FH Technikum Wien absolviert:
+
+
+
+
+
+
+
+
+ Course
+
+
+ SP/W 1
+
+
+ ECTS
+
+
+ Grade 2
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+ ¹ 1 Semester period per week = 45 minutes
+ ² Grades:excellent (1), good (2), satisfactory (3), sufficient (4), Credit based on previous experience/work (ar), Participated with success (met), passed (b),
+ successfully completed (ea), participated (tg)
+
+
+ After passing this course successfully students are able to ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Vienna,
+
+
+
+
+
+
+
+
+
+
+ Place, Date
+
+
+
+
+
+
+ Program Director
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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