mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 08:22:17 +00:00
Merge branch 'master' into ciauth
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
- **[CORE]** Infocenter Seite hinzugefügt zur zentralen Verwaltung und ZGV Prüfung von Interessenten
|
||||
- **[CORE]** Unterstützung für Matrikelnummern und BPK - Anbindung an den Datenverbund
|
||||
- **[CORE]** Digitale Signatur für Dokumente
|
||||
- **[FAS]** Direkte Zuordnung von Personen zu Lehreinheiten für Wiederholer, Incoming, etc
|
||||
|
||||
### CHANGED
|
||||
- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktivierte Benutzer keine Berechtigungen mehr haben
|
||||
|
||||
@@ -21,7 +21,11 @@ class Mitarbeiter extends APIv1_Controller
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(array('Mitarbeiter' => 'basis/mitarbeiter:rw'));
|
||||
parent::__construct(array(
|
||||
'Mitarbeiter' => 'basis/mitarbeiter:rw',
|
||||
'Update' => 'basis/mitarbeiter:rw'
|
||||
)
|
||||
);
|
||||
// Load model MitarbeiterModel
|
||||
$this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
|
||||
|
||||
@@ -71,6 +75,41 @@ class Mitarbeiter extends APIv1_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates an Employee Record
|
||||
*
|
||||
* @return json Response Object
|
||||
*/
|
||||
public function postUpdate()
|
||||
{
|
||||
if ($this->_validate($this->post()))
|
||||
{
|
||||
if (isset($this->post()['mitarbeiter_uid']))
|
||||
{
|
||||
$result_load = $this->MitarbeiterModel->load($this->post()['mitarbeiter_uid']);
|
||||
if(isSuccess($result_load) && hasData($result_load))
|
||||
{
|
||||
$result = $this->MitarbeiterModel->update($this->post()['mitarbeiter_uid'], $this->post());
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error('mitarbeiter_uid not found');
|
||||
$this->response($result, REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error('Parameter mitarbeiter_uid is missing');
|
||||
$this->response($result, REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
private function _validate($mitarbeiter = NULL)
|
||||
{
|
||||
return true;
|
||||
|
||||
@@ -42,7 +42,9 @@ class ReihungstestJob extends FHC_Controller
|
||||
|
||||
// Load models
|
||||
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
|
||||
$this->load->model('crm/RtStudienplan_model', 'RtStudienplanModel');
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
$this->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
||||
|
||||
// Load helpers
|
||||
$this->load->helper('hlp_sancho_helper');
|
||||
@@ -489,4 +491,85 @@ class ReihungstestJob extends FHC_Controller
|
||||
|
||||
return $content_data_arr;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks the upcoming placement tests if there are correct studyplans assigned
|
||||
* If there are invalid studyplans assigned (outdated because there exists a new version),
|
||||
* it tries to find a better one and assigns it additionaly
|
||||
*/
|
||||
public function correctStudienplan()
|
||||
{
|
||||
// get all placement tests with incorrect studyplan
|
||||
$qry = "
|
||||
SELECT
|
||||
tbl_reihungstest.reihungstest_id,
|
||||
tbl_studienplan.studienplan_id,
|
||||
tbl_reihungstest.studiensemester_kurzbz,
|
||||
tbl_studienordnung.studiengang_kz
|
||||
FROM
|
||||
public.tbl_reihungstest
|
||||
JOIN public.tbl_rt_studienplan ON(tbl_rt_studienplan.reihungstest_id=tbl_reihungstest.reihungstest_id)
|
||||
JOIN lehre.tbl_studienplan USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE
|
||||
NOT EXISTS(
|
||||
SELECT 1 FROM lehre.tbl_studienplan_semester
|
||||
WHERE studienplan_id=tbl_rt_studienplan.studienplan_id
|
||||
AND tbl_studienplan_semester.studiensemester_kurzbz=tbl_reihungstest.studiensemester_kurzbz
|
||||
)
|
||||
AND tbl_reihungstest.datum >= now()
|
||||
AND NOT EXISTS(
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_studienplan rtstp
|
||||
JOIN lehre.tbl_studienplan stp USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung sto USING(studienordnung_id)
|
||||
JOIN lehre.tbl_studienplan_semester stpsem USING(studienplan_id)
|
||||
WHERE
|
||||
sto.studiengang_kz=tbl_studienordnung.studiengang_kz
|
||||
AND rtstp.reihungstest_id=tbl_reihungstest.reihungstest_id
|
||||
AND stpsem.studiensemester_kurzbz=tbl_reihungstest.studiensemester_kurzbz
|
||||
)
|
||||
";
|
||||
|
||||
$db = new DB_Model();
|
||||
$result_rt = $db->execReadOnlyQuery($qry);
|
||||
|
||||
if(hasdata($result_rt))
|
||||
{
|
||||
foreach ($result_rt->retval as $row_rt)
|
||||
{
|
||||
// find an active studyplan for the same degree program with is valid in this semester
|
||||
$result_stpl = $this->StudienplanModel->getStudienplaeneBySemester(
|
||||
$row_rt->studiengang_kz,
|
||||
$row_rt->studiensemester_kurzbz
|
||||
);
|
||||
|
||||
if(hasData($result_stpl))
|
||||
{
|
||||
foreach($result_stpl->retval as $row_stpl)
|
||||
{
|
||||
// Add new Studyplan to RtStudienplan if missing
|
||||
$rt_studienplan = $this->RtStudienplanModel->loadWhere(array(
|
||||
"reihungstest_id" => $row_rt->reihungstest_id,
|
||||
"studienplan_id" => $row_stpl->studienplan_id
|
||||
));
|
||||
|
||||
if(!hasData($rt_studienplan))
|
||||
{
|
||||
echo "\nAdding StudienplanId: $row_stpl->studienplan_id";
|
||||
echo " to ReihungstestId: $row_rt->reihungstest_id";
|
||||
|
||||
$this->RtStudienplanModel->insert(array(
|
||||
"reihungstest_id" => $row_rt->reihungstest_id,
|
||||
"studienplan_id" => $row_stpl->studienplan_id
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,5 +10,72 @@ class Lehreinheit_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'lehre.tbl_lehreinheit';
|
||||
$this->pk = 'lehreinheit_id';
|
||||
|
||||
$this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||
$this->load->model('education/lehreinheitgruppe_model', 'LehreinheitgruppeModel');
|
||||
$this->load->model('education/lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Lehreinheiten for a Lehrveranstaltung in a Studiensemester.
|
||||
* Includes Lehrfach, Lehreinheitgruppen and Lektoren.
|
||||
* @param $lehrveranstaltung_id
|
||||
* @param $studiensemester
|
||||
* @return array with Lehreinheiten and their Lehreinheitgruppen
|
||||
*/
|
||||
public function getLesForLv($lehrveranstaltung_id, $studiensemester)
|
||||
{
|
||||
$lehreinheiten = array();
|
||||
|
||||
$les = $this->loadWhere(
|
||||
array('lehrveranstaltung_id' => $lehrveranstaltung_id,
|
||||
'studiensemester_kurzbz' => $studiensemester)
|
||||
);
|
||||
|
||||
if (hasData($les))
|
||||
{
|
||||
$this->LehrveranstaltungModel->addSelect('kurzbz, bezeichnung');
|
||||
foreach ($les->retval as $le)
|
||||
{
|
||||
$lehrfach = $this->LehrveranstaltungModel->load($le->lehrfach_id);
|
||||
if (hasData($lehrfach))
|
||||
{
|
||||
$letoadd = $le;
|
||||
$letoadd->lehrfach_bezeichnung = $lehrfach->retval[0]->bezeichnung;
|
||||
$letoadd->lehrfach_kurzbz = $lehrfach->retval[0]->kurzbz;
|
||||
|
||||
// add lehreinheitgruppen, each lehreinheitid
|
||||
// having (maybe multiple) lehreinheitgruppen
|
||||
$letoadd->lehreinheitgruppen = array();
|
||||
$lehreinheitgruppen = $this->LehreinheitgruppeModel->loadWhere(array('lehreinheit_id' => $le->lehreinheit_id));
|
||||
if (hasData($lehreinheitgruppen))
|
||||
{
|
||||
foreach ($lehreinheitgruppen->retval as $lehreinheitgruppe)
|
||||
{
|
||||
$letoadd->lehreinheitgruppen[] = array(
|
||||
'semester' => $lehreinheitgruppe->semester,
|
||||
'verband' => $lehreinheitgruppe->verband,
|
||||
'gruppe' => $lehreinheitgruppe->gruppe
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// add lektoren
|
||||
$letoadd->lektoren = array();
|
||||
$lehreinheitmitarbeiter = $this->LehreinheitmitarbeiterModel->loadWhere(array('lehreinheit_id' => $le->lehreinheit_id));
|
||||
if (hasData($lehreinheitmitarbeiter))
|
||||
{
|
||||
foreach ($lehreinheitmitarbeiter->retval as $lehreinheitma)
|
||||
{
|
||||
$letoadd->lektoren[] = $lehreinheitma->mitarbeiter_uid;
|
||||
}
|
||||
}
|
||||
|
||||
$lehreinheiten[] = $letoadd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $lehreinheiten;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,15 +10,258 @@ class Lehreinheitgruppe_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'lehre.tbl_lehreinheitgruppe';
|
||||
$this->pk = 'lehreinheitgruppe_id';
|
||||
$this->load->model('education/lehreinheit_model', 'LehreinheitModel');
|
||||
$this->load->model('organisation/studiengang_model', 'StudiengangModel');
|
||||
$this->load->model('organisation/gruppe_model', 'GruppeModel');
|
||||
$this->load->model('person/benutzergruppe_model', 'BenutzergruppeModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets group directly assigned to a Lehreinheit
|
||||
* @param $lehreinheit_id
|
||||
* @return array
|
||||
*/
|
||||
public function getDirectGroup($lehreinheit_id)
|
||||
{
|
||||
$this->addJoin('public.tbl_gruppe', 'gruppe_kurzbz');
|
||||
return $this->loadWhere(array(
|
||||
return $this->loadWhere(
|
||||
array(
|
||||
'tbl_gruppe.direktinskription' => true,
|
||||
'lehreinheit_id' => $lehreinheit_id
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets direct group assignment, consisting of lehreinheitgruppe, gruppe and benutzergruppe
|
||||
* @param $uid
|
||||
* @param $lehreinheit_id
|
||||
* @return array
|
||||
*/
|
||||
public function getDirectGroupAssignment($uid, $lehreinheit_id)
|
||||
{
|
||||
$this->addJoin('public.tbl_gruppe', 'gruppe_kurzbz');
|
||||
$this->addJoin('public.tbl_benutzergruppe', 'gruppe_kurzbz');
|
||||
return $this->loadWhere(array(
|
||||
'tbl_gruppe.direktinskription' => true,
|
||||
'lehreinheit_id' => $lehreinheit_id,
|
||||
'tbl_benutzergruppe.uid' => $uid
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Directly assigns a user to a Lehreinheit (Lehreinheitgruppe, Benutzergruppe).
|
||||
* Creates own "hidden" group if necessary.
|
||||
* @param $uid of the student to assign
|
||||
* @param $lehreinheit_id
|
||||
* @return array error or success
|
||||
*/
|
||||
public function direktUserAdd($uid, $lehreinheit_id)
|
||||
{
|
||||
$result = success('User added successfully to group');
|
||||
$directgroup = $this->getDirectGroup($lehreinheit_id);
|
||||
$lehreinheit = $this->LehreinheitModel->load($lehreinheit_id);
|
||||
$loggedInUser = getAuthUID();
|
||||
|
||||
if (hasData($lehreinheit))
|
||||
{
|
||||
if (hasData($directgroup))
|
||||
{
|
||||
$gruppe_kurzbz = $directgroup->retval[0]->gruppe_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Es gibt keine direkte Gruppe zu dieser LE
|
||||
// es wird eine erstellt und zugewiesen
|
||||
$lva = $this->LehrveranstaltungModel->load($lehreinheit->retval[0]->lehrveranstaltung_id);
|
||||
|
||||
if (hasData($lva))
|
||||
{
|
||||
$lvadata = $lva->retval[0];
|
||||
$studiengang = $this->StudiengangModel->load($lvadata->studiengang_kz);
|
||||
|
||||
if (hasData($studiengang))
|
||||
{
|
||||
$gruppe_kurzbz = 'GRP_'.$lehreinheit_id;
|
||||
$studiengangdata = $studiengang->retval[0];
|
||||
$kuerzel = mb_strtoupper($studiengangdata->typ.$studiengangdata->kurzbz);
|
||||
$bezeichnung = $kuerzel.' '.$lvadata->semester.' '.$lvadata->kurzbz;
|
||||
|
||||
$gruppe = $this->GruppeModel->load($gruppe_kurzbz);
|
||||
|
||||
if (!hasData($gruppe))
|
||||
{
|
||||
$groupdata = array(
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz,
|
||||
'studiengang_kz' => $lvadata->studiengang_kz,
|
||||
'semester' => $lvadata->semester,
|
||||
'bezeichnung' => $bezeichnung,
|
||||
'aktiv' => true,
|
||||
'mailgrp' => false,
|
||||
'sichtbar' => true,
|
||||
'generiert' => false,
|
||||
'insertamum' => date('Y-m-d H:i:s'),
|
||||
'insertvon' => $loggedInUser,
|
||||
'orgform_kurzbz' => $lvadata->orgform_kurzbz,
|
||||
'direktinskription' => true
|
||||
|
||||
);
|
||||
|
||||
$groupadd = $this->GruppeModel->insert($groupdata);
|
||||
|
||||
if (isError($groupadd))
|
||||
return error('Error when inserting Gruppe');
|
||||
}
|
||||
|
||||
$lehreinheitgruppedata = array(
|
||||
'lehreinheit_id' => $lehreinheit->retval[0]->lehreinheit_id,
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz,
|
||||
'studiengang_kz' => $lvadata->studiengang_kz,
|
||||
'semester' => $lvadata->semester,
|
||||
'insertamum' => date('Y-m-d H:i:s'),
|
||||
'insertvon' => $loggedInUser
|
||||
);
|
||||
|
||||
$lehreinheitgruppeadd = $this->insert($lehreinheitgruppedata);
|
||||
|
||||
if (isError($lehreinheitgruppeadd))
|
||||
$result = error('Error when inserting Lehreinheit');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($gruppe_kurzbz) && !isEmptyString($gruppe_kurzbz))
|
||||
{
|
||||
$benutzergruppe = $this->BenutzergruppeModel->load(array(
|
||||
'uid' => $uid,
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz
|
||||
));
|
||||
|
||||
if (!hasData($benutzergruppe))
|
||||
{
|
||||
$benutzergruppedata = array(
|
||||
'uid' => $uid,
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz,
|
||||
'studiensemester_kurzbz' => $lehreinheit->retval[0]->studiensemester_kurzbz,
|
||||
'insertamum' => date('Y-m-d H:i:s'),
|
||||
'insertvon' => $loggedInUser
|
||||
);
|
||||
|
||||
$benutzergruppeadd = $this->BenutzergruppeModel->insert($benutzergruppedata);
|
||||
|
||||
if (isError($benutzergruppeadd))
|
||||
$result = error('Error when inserting Benutzergruppe');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return error('No Lehreinheit found');
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes direct assignment of a student to a Lehreinheit
|
||||
* @param $uid of the assigned student
|
||||
* @param $lehreinheit_id
|
||||
* @return array error or success
|
||||
*/
|
||||
public function direktUserDelete($uid, $lehreinheit_id)
|
||||
{
|
||||
$result = success('User deleted successfully');
|
||||
$lehreinheit = $this->LehreinheitModel->load($lehreinheit_id);
|
||||
|
||||
if (hasData($lehreinheit))
|
||||
{
|
||||
$directgroup = $this->getDirectGroup($lehreinheit_id);
|
||||
if (hasData($directgroup))
|
||||
{
|
||||
$gruppe_kurzbz = $directgroup->retval[0]->gruppe_kurzbz;
|
||||
// delete benutzer assignment
|
||||
$deleteresp = $this->BenutzergruppeModel->delete(array('uid' => $uid, 'gruppe_kurzbz' => $gruppe_kurzbz));
|
||||
|
||||
if (hasData($deleteresp))
|
||||
{
|
||||
$uids = $this->BenutzergruppeModel->loadWhere(
|
||||
array(
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz,
|
||||
'studiensemester_kurzbz' => $lehreinheit->retval[0]->studiensemester_kurzbz)
|
||||
);
|
||||
|
||||
if (isSuccess($uids) && !hasData($uids))
|
||||
{
|
||||
// group is empty and can be deleted
|
||||
|
||||
// delete from Lehreinheit
|
||||
$this->delete($directgroup->retval[0]->lehreinheitgruppe_id);
|
||||
|
||||
$studplandevqry = "
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
lehre.tbl_stundenplandev
|
||||
WHERE
|
||||
gruppe_kurzbz=?
|
||||
LIMIT 1";
|
||||
|
||||
$studplandevres = $this->execQuery($studplandevqry, array('gruppe_kurzbz' => $gruppe_kurzbz));
|
||||
if (isSuccess($studplandevres))
|
||||
{
|
||||
if (hasData($studplandevres))
|
||||
{
|
||||
$studplandevdelqry = "
|
||||
DELETE FROM lehre.tbl_stundenplandev
|
||||
WHERE gruppe_kurzbz=?";
|
||||
|
||||
$studplandevdelres = $this->execQuery($studplandevdelqry, array('gruppe_kurzbz' => $gruppe_kurzbz));
|
||||
|
||||
if (!hasData($studplandevdelres))
|
||||
$result = error('Studienplan entry could not be deleted');
|
||||
}
|
||||
else
|
||||
{
|
||||
$lehreinheitgrupperes = $this->load(array('gruppe_kurzbz' => $gruppe_kurzbz));
|
||||
|
||||
if (isSuccess($lehreinheitgrupperes) && !hasData($lehreinheitgrupperes))
|
||||
{
|
||||
$benutzergruppegrupperes = $this->BenutzergruppeModel->load(array('gruppe_kurzbz' => $gruppe_kurzbz));
|
||||
|
||||
if (isSuccess($benutzergruppegrupperes) && !hasData($benutzergruppegrupperes))
|
||||
{
|
||||
// delete group if not in Studienplandev. If in Studienplan, deleted next day after cronjob.
|
||||
$gruppedelres = $this->GruppeModel->delete($gruppe_kurzbz);
|
||||
|
||||
if (!hasData($gruppedelres))
|
||||
{
|
||||
$result = error('Gruppe could not be deleted');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error('Error when querying Studienplan');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error('Benutzergruppe could not be deleted');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error('No direct group found for Lehreinheit');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error('No Lehreinheit found');
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,8 +132,10 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel, tbl_studiengang.orgform_kurzbz, vw_student_lehrveranstaltung.semester, vw_student_lehrveranstaltung.studiensemester_kurzbz, vw_student_lehrveranstaltung.bezeichnung
|
||||
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid)
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
LEFT JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
@@ -171,4 +173,34 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($lehrveranstaltung_id, $studiensemester_kurzbz));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Lehrveranstaltungen of a student
|
||||
* @param $student_uid
|
||||
* @param null $studiensemester_kurzbz
|
||||
* @return array|null
|
||||
*/
|
||||
public function getLvsByStudent($student_uid, $studiensemester_kurzbz = null)
|
||||
{
|
||||
$params = array($student_uid);
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung
|
||||
WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung
|
||||
WHERE uid=?";
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND studiensemester_kurzbz=?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
$qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=?";
|
||||
$params[] = $student_uid;
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= " AND studiensemester_kurzbz=?";
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
$qry .= ") ORDER BY semester, bezeichnung";
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,5 +10,6 @@ class Benutzergruppe_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_benutzergruppe';
|
||||
$this->pk = array('gruppe_kurzbz', 'uid');
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,9 @@ if (!$db = new basis_db())
|
||||
|
||||
$uid=get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
// Variablen uebernehmen
|
||||
if (isset($_GET['type']))
|
||||
$type=$_GET['type'];
|
||||
@@ -331,12 +334,12 @@ if (isset($reserve) && $raumres)
|
||||
$stpl = new stundenplan('stundenplan');
|
||||
$stpldev = new stundenplan('stundenplandev');
|
||||
|
||||
if(!$stpl->isBelegt($ort_kurzbz, $datum_res, $stunde)
|
||||
&& !$stpldev->isBelegt($ort_kurzbz, $datum_res, $stunde))
|
||||
if((!$stpl->isBelegt($ort_kurzbz, $datum_res, $stunde)
|
||||
&& !$stpldev->isBelegt($ort_kurzbz, $datum_res, $stunde)) || $rechte->isBerechtigt('lehre/reservierungAdvanced'))
|
||||
{
|
||||
$reservierung = new reservierung();
|
||||
|
||||
if(!$reservierung->isReserviert($ort_kurzbz, $datum_res, $stunde))
|
||||
if(!$reservierung->isReserviert($ort_kurzbz, $datum_res, $stunde) || $rechte->isBerechtigt('lehre/reservierungAdvanced'))
|
||||
{
|
||||
if (empty($_REQUEST['titel']) && empty($_REQUEST['beschreibung']))
|
||||
echo "<br>".$p->t('lvplan/titelUndBeschreibungFehlt')."! <br>";
|
||||
|
||||
@@ -302,60 +302,63 @@ if (in_array($stsem, $stsem_arr))
|
||||
else
|
||||
echo '<p class="error">'.$p->t('tools/keinStatusImStudiensemester',array($stsem)).'</p>';
|
||||
|
||||
$akte = new akte();
|
||||
echo '<h2>' . $p->t('tools/abschlussdokumente') . '</h2>';
|
||||
echo '<table><tr>';
|
||||
echo '<td style=" background-color: #fcf8e3;
|
||||
color: #8a6d3b;
|
||||
padding: .75rem 1.25rem;
|
||||
margin-bottom: 1rem;
|
||||
border: 1px solid #faf2cc;
|
||||
border-radius: .25rem;">'.$p->t('tools/warnungDruckDigitaleSignatur').'</td>';
|
||||
echo '</tr></table>';
|
||||
|
||||
if($akte->getArchiv($student_studiengang->person_id, null, true) && count($akte->result)>0)
|
||||
if (!defined('CIS_DOKUMENTE_SELFSERVICE') || CIS_DOKUMENTE_SELFSERVICE)
|
||||
{
|
||||
echo '
|
||||
<table class="tablesorter2" style="width:auto;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>'.$p->t('tools/erstelldatum').'</th>
|
||||
<th>'.$p->t('tools/dokument').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
$akte = new akte();
|
||||
echo '<h2>' . $p->t('tools/abschlussdokumente') . '</h2>';
|
||||
echo '<table><tr>';
|
||||
echo '<td style=" background-color: #fcf8e3;
|
||||
color: #8a6d3b;
|
||||
padding: .75rem 1.25rem;
|
||||
margin-bottom: 1rem;
|
||||
border: 1px solid #faf2cc;
|
||||
border-radius: .25rem;">'.$p->t('tools/warnungDruckDigitaleSignatur').'</td>';
|
||||
echo '</tr></table>';
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
foreach($akte->result as $row)
|
||||
if($akte->getArchiv($student_studiengang->person_id, null, true) && count($akte->result)>0)
|
||||
{
|
||||
$pfad = 'dokumente.php?action=download&id='.$row->akte_id.'&uid='.$uid;
|
||||
echo '<tr>';
|
||||
echo '<td><img src="../../../skin/images/pdfpic.gif" /></td>';
|
||||
echo '<td>'.$datum_obj->formatDatum($row->erstelltam,'d.m.Y').'</td>';
|
||||
echo '<td><a href="'.$pfad.'">'.$row->bezeichnung.'</a></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '
|
||||
<table class="tablesorter2" style="width:auto;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>'.$p->t('tools/erstelldatum').'</th>
|
||||
<th>'.$p->t('tools/dokument').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<table class="tablesorter2" style="width:auto;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>'.$p->t('tools/erstelldatum').'</th>
|
||||
<th>'.$p->t('tools/dokument').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
echo '<td colspan="3">'.$p->t('tools/nochKeineAbschlussdokumenteVorhanden').'</td>';
|
||||
echo '</tbody></table>';
|
||||
$datum_obj = new datum();
|
||||
|
||||
foreach($akte->result as $row)
|
||||
{
|
||||
$pfad = 'dokumente.php?action=download&id='.$row->akte_id.'&uid='.$uid;
|
||||
echo '<tr>';
|
||||
echo '<td><img src="../../../skin/images/pdfpic.gif" /></td>';
|
||||
echo '<td>'.$datum_obj->formatDatum($row->erstelltam,'d.m.Y').'</td>';
|
||||
echo '<td><a href="'.$pfad.'">'.$row->bezeichnung.'</a></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<table class="tablesorter2" style="width:auto;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>'.$p->t('tools/erstelldatum').'</th>
|
||||
<th>'.$p->t('tools/dokument').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
echo '<td colspan="3">'.$p->t('tools/nochKeineAbschlussdokumenteVorhanden').'</td>';
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
}
|
||||
echo '</body>
|
||||
</html>
|
||||
|
||||
@@ -91,12 +91,12 @@ $fieldheadings = array(
|
||||
if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung'))
|
||||
{
|
||||
$za_simple = 0;
|
||||
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
}
|
||||
else
|
||||
{
|
||||
$za_simple = 1;
|
||||
$activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
$activities = array('Arbeit', 'Pause', 'LehreIntern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
}
|
||||
|
||||
$activities_str = "'".implode("','", $activities)."'";
|
||||
|
||||
+57
-9
@@ -27,6 +27,8 @@ require_once('../../include/person.class.php');
|
||||
require_once('../../include/prestudent.class.php');
|
||||
require_once('../../include/pruefling.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/studienplan.class.php');
|
||||
require_once('../../include/ablauf.class.php');
|
||||
require_once('../../include/reihungstest.class.php');
|
||||
require_once('../../include/sprache.class.php');
|
||||
require_once '../../include/phrasen.class.php';
|
||||
@@ -174,10 +176,51 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
$_SESSION['sprache']=$stg_obj->sprache;
|
||||
|
||||
$_SESSION['semester']=$semester;
|
||||
|
||||
// STG und Studienplan mit der höchsten Prio ermitteln
|
||||
$ps->getActualInteressenten($_POST['prestudent'], true);
|
||||
$firstPrio_studienplan_id = array_column($ps->result, 'studienplan_id');
|
||||
$firstPrio_studienplan_id = array_shift($firstPrio_studienplan_id);
|
||||
$firstPrio_studiengang_kz = array_column($ps->result, 'studiengang_kz');
|
||||
$firstPrio_studiengang_kz = array_shift($firstPrio_studiengang_kz);
|
||||
|
||||
|
||||
// Sprachvorgaben zu STG mit höchster Prio ermitteln
|
||||
|
||||
// * 1. Sprache über Ablauf Vorgaben ermitteln
|
||||
$ablauf = new Ablauf();
|
||||
$ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz);
|
||||
$rt_sprache = $ablauf->result[0]->sprache;
|
||||
|
||||
// * 2. falls keine Sprache vorhanden -> Sprache über Studienplan ermitteln
|
||||
if (empty($rt_sprache))
|
||||
{
|
||||
$stpl = new Studienplan();
|
||||
$stpl->loadStudienplan($firstPrio_studienplan_id);
|
||||
$rt_sprache = $stpl->sprache;
|
||||
|
||||
}
|
||||
|
||||
// * 3. falls keine Sprache vorhanden -> Sprache über Studiengang ermitteln
|
||||
if (empty($rt_sprache))
|
||||
{
|
||||
$stg = new Studiengang($firstPrio_studiengang_kz);
|
||||
$rt_sprache = $stg->sprache;
|
||||
}
|
||||
|
||||
// * 4. Sprache setzen. Falls keine Sprache vorhanden -> DEFAULT language verwenden
|
||||
if (empty($rt_sprache))
|
||||
{
|
||||
$_SESSION['sprache'] = DEFAULT_LANGUAGE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$_SESSION['sprache'] = $rt_sprache;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</span>';
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/reihungstestNichtFreigeschalten').'</span>';
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -311,12 +354,17 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
$typ = new studiengang($prestudent->studiengang_kz);
|
||||
$typ->getStudiengangTyp($stg_obj->typ);
|
||||
|
||||
//Sprachwahl des Studiengangs
|
||||
$qry = "SELECT sprachwahl FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".$db->db_add_param($prestudent->studiengang_kz)." LIMIT 1";
|
||||
$result = $db->db_query($qry);
|
||||
$sprachwahl = $db->db_fetch_object($result);
|
||||
$sprachwahl = $db->db_parse_bool($sprachwahl->sprachwahl);
|
||||
|
||||
// STG mit der höchsten Prio ermitteln
|
||||
$ps = new Prestudent();
|
||||
$ps->getActualInteressenten($prestudent_id, true);
|
||||
$firstPrio_studiengang_kz = array_column($ps->result, 'studiengang_kz');
|
||||
$firstPrio_studiengang_kz = array_shift($firstPrio_studiengang_kz);
|
||||
|
||||
// Sprachwahl zu STG mit höchster Prio ermitteln
|
||||
$ablauf = new Ablauf();
|
||||
$ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz);
|
||||
$sprachwahl = $ablauf->result[0]->sprachwahl;
|
||||
|
||||
//Prestudent Informationen und Logout
|
||||
echo '<form method="GET">';
|
||||
echo '<br>'.$p->t('testtool/begruessungstext').' <br/><br/>';
|
||||
@@ -339,7 +387,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
echo '</table>';
|
||||
echo '</FORM>';
|
||||
|
||||
//Wenn die Sprachwahl fuer diesen Studiengang aktiviert ist, dann die Sprachen anzeigen
|
||||
//Wenn die Sprachwahl fuer den priorisierten Studiengang aktiviert ist, dann die Sprachen anzeigen
|
||||
if($sprachwahl==true)
|
||||
{
|
||||
//Liste der Sprachen, die in den Gebieten vorkommen koennen
|
||||
|
||||
+125
-2
@@ -70,7 +70,7 @@ if(isset($_GET['sprache_user']))
|
||||
setSpracheUser(DEFAULT_LANGUAGE);
|
||||
}
|
||||
|
||||
$sprache_user = getSpracheUser();
|
||||
$sprache_user = getSpracheUser();
|
||||
$p = new phrasen($sprache_user);
|
||||
$sprache = getSprache();
|
||||
|
||||
@@ -103,7 +103,130 @@ if (isset($_SESSION['pruefling_id']))
|
||||
|
||||
$sprache_mehrsprachig = new sprache();
|
||||
$bezeichnung_mehrsprachig = $sprache_mehrsprachig->getSprachQuery('bezeichnung_mehrsprachig');
|
||||
$qry = "SELECT vw_ablauf.*, ".$bezeichnung_mehrsprachig." FROM testtool.vw_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studiengang_kz=".$db->db_add_param($_SESSION['studiengang_kz'])." ORDER BY semester,reihung";
|
||||
|
||||
/**
|
||||
* Spaltennamen-Aliase extrahieren um sie im Outer-Select verwenden zu können
|
||||
* $bezeichnung_mehrsprachig liefert: bezeichnung_mehrsprachig[1] as bezeichnung_mehrsprachig_1,...
|
||||
* $bezeichnung_mehrsprachig_sel liefert: bezeichnung_mehrsprachig_1, bezeichnung_mehrsprachig_2,...
|
||||
*/
|
||||
$bezeichnung_mehrsprachig_sel = explode(",", $bezeichnung_mehrsprachig);
|
||||
foreach ($bezeichnung_mehrsprachig_sel as &$bm)
|
||||
{
|
||||
$bm = strrchr($bm, ' as ');
|
||||
}
|
||||
$bezeichnung_mehrsprachig_sel = implode(', ', $bezeichnung_mehrsprachig_sel);
|
||||
|
||||
/**
|
||||
* Reihungstestgebiete der Person ermitteln; Zusammenfassen, falls RT für mehrere Studien
|
||||
* 1. Aktuelle Prestudenten zur Person über den Prüfling ermitteln,
|
||||
* 2. Einstiegssemester (Erstsemester/Quereinsteiger) und Studienplan pro Prestudent ermitteln,
|
||||
* 3. RT-Gebiete falls vorhanden über Studienplan, sonst über STG ermitteln
|
||||
* 4. Für Quereinsteiger zusätzlich auch Erstsemestrigen-Gebiete
|
||||
*/
|
||||
$qry = "
|
||||
WITH prestudent_data AS
|
||||
(
|
||||
SELECT DISTINCT ON (prestudent_id)
|
||||
prestudent_id,
|
||||
studienplan_id,
|
||||
studiengang_kz,
|
||||
ausbildungssemester AS semester
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
JOIN
|
||||
public.tbl_prestudent USING (prestudent_id)
|
||||
WHERE
|
||||
tbl_prestudent.person_id = (
|
||||
SELECT
|
||||
person_id
|
||||
FROM
|
||||
public.tbl_prestudent
|
||||
WHERE
|
||||
prestudent_id = ".$db->db_add_param($_SESSION['prestudent_id'])."
|
||||
)
|
||||
|
||||
-- Filter only future studiensemester (incl. actual one)
|
||||
AND
|
||||
studiensemester_kurzbz IN (
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
ende > now()
|
||||
)
|
||||
|
||||
AND
|
||||
status_kurzbz = 'Interessent'
|
||||
|
||||
-- Order to get last semester when using distinct on
|
||||
ORDER BY
|
||||
prestudent_id,
|
||||
datum DESC,
|
||||
tbl_prestudentstatus.insertamum DESC,
|
||||
tbl_prestudentstatus.ext_id DESC
|
||||
)
|
||||
|
||||
|
||||
SELECT DISTINCT
|
||||
semester,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
". $bezeichnung_mehrsprachig_sel. "
|
||||
FROM
|
||||
(
|
||||
(SELECT
|
||||
prestudent_data.semester AS ps_sem,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
tbl_ablauf.studienplan_id,
|
||||
tbl_ablauf.studiengang_kz,
|
||||
tbl_ablauf.semester,
|
||||
tbl_ablauf.reihung,
|
||||
".$bezeichnung_mehrsprachig. "
|
||||
FROM
|
||||
prestudent_data
|
||||
JOIN
|
||||
testtool.tbl_ablauf USING (studiengang_kz)
|
||||
JOIN
|
||||
testtool.tbl_gebiet USING (gebiet_id)
|
||||
WHERE
|
||||
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
)
|
||||
|
||||
UNION
|
||||
|
||||
(
|
||||
SELECT
|
||||
prestudent_data.semester AS ps_sem,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
tbl_ablauf.studienplan_id,
|
||||
tbl_ablauf.studiengang_kz,
|
||||
tbl_ablauf.semester,
|
||||
tbl_ablauf.reihung,
|
||||
". $bezeichnung_mehrsprachig. "
|
||||
FROM
|
||||
prestudent_data
|
||||
JOIN
|
||||
testtool.tbl_ablauf USING (studienplan_id)
|
||||
JOIN
|
||||
testtool.tbl_gebiet USING (gebiet_id)
|
||||
WHERE
|
||||
(prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
)
|
||||
|
||||
ORDER BY
|
||||
reihung
|
||||
) temp
|
||||
|
||||
ORDER BY
|
||||
semester
|
||||
";
|
||||
|
||||
$result = $db->db_query($qry);
|
||||
$lastsemester = '';
|
||||
|
||||
@@ -210,6 +210,9 @@ define('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN',true);
|
||||
//Gibt an, ob die Studienerfolgsbestätigung im CIS gedruckt werden kann
|
||||
define('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN',true);
|
||||
|
||||
//Gibt an, ob die archivierten Self-Service Dokumente im CIS heruntergeladen werden koennen
|
||||
define('CIS_DOKUMENTE_SELFSERVICE', true);
|
||||
|
||||
//**** INFOSCREEN ****
|
||||
//Gibt an, ob der Lageplan im Infoterminal angezeigt werden soll.
|
||||
define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN',true);
|
||||
|
||||
@@ -104,6 +104,10 @@ define('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN',false);
|
||||
//oder Prozentpunkte uebernommen werden true=Punkte, false=Prozentpunkte
|
||||
define('FAS_REIHUNGSTEST_PUNKTE', false);
|
||||
|
||||
// Legt fest, welche Reihungstestgebiete bei der Berechnung der Gesamtpunkte NICHT einbezogen werden.
|
||||
// array(gebiet_id1, gebiet_id2,...)
|
||||
define('FAS_REIHUNGSTEST_EXCLUDE_GEBIETE', array());
|
||||
|
||||
// Legt fest ob Messages im FAS angezeigt werden true|false
|
||||
define('FAS_MESSAGES',false);
|
||||
|
||||
|
||||
@@ -45,6 +45,9 @@ define('CIS_ROOT', 'http://www.fhcomlete.org/build/');
|
||||
// Externe Funktionen - Unterordner im Include-Verzeichnis
|
||||
define('EXT_FKT_PATH', 'tw');
|
||||
|
||||
// Bezeichnung des Campus
|
||||
define('CAMPUS_NAME','');
|
||||
|
||||
// Fuer Mails etc
|
||||
define('DOMAIN', 'example.com');
|
||||
|
||||
|
||||
@@ -1698,7 +1698,7 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $benutergruppe->errormsg;
|
||||
$errormsg = $benutzergruppe->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,7 +228,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<textbox id="lehrveranstaltung-detail-textbox-startkw" width="50" disabled="true"/>
|
||||
<label value=" Stundenblockung " />
|
||||
<textbox id="lehrveranstaltung-detail-textbox-stundenblockung" width="50" disabled="true" />
|
||||
<label value=" Wochenrythmus " />
|
||||
<label value=" Wochenrhythmus " />
|
||||
<textbox id="lehrveranstaltung-detail-textbox-wochenrythmus" width="50" disabled="true"/>
|
||||
</hbox>
|
||||
|
||||
|
||||
@@ -1457,6 +1457,11 @@ function LeGruppeDirektAdd()
|
||||
alert("Lehreinheit wurde nicht gefunden. Daten wurden nicht gespeichert!");
|
||||
return;
|
||||
}
|
||||
if(user == '')
|
||||
{
|
||||
alert("Bitte wählen sie zuerst einen Eintrag aus");
|
||||
return;
|
||||
}
|
||||
|
||||
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul
|
||||
<row>
|
||||
<label value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lektor" />
|
||||
<label value="WR: rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#wochenrythmus Bl: rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#stundenblockung"
|
||||
tooltiptext="Wochenrythmus" />
|
||||
tooltiptext="Wochenrhythmus" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="Offen: rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#offenestunden / rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#semesterstunden"
|
||||
|
||||
@@ -549,7 +549,7 @@ elseif ($aktion=='lva_multi_set')
|
||||
if (count($wochenrythmus)==1)
|
||||
$wochenrythmus=$wr;
|
||||
else
|
||||
$error_msg.='Wochenrythmus ist nicht eindeutig!';
|
||||
$error_msg.='Wochenrhythmus ist nicht eindeutig!';
|
||||
$count=0;
|
||||
$rest=$offenestunden;
|
||||
if ($rest<=0)
|
||||
|
||||
@@ -189,7 +189,7 @@ $worksheet->write($zeile,++$spalte,"Planstunden", $format_bold);
|
||||
$maxlength[$spalte]=11;
|
||||
$worksheet->write($zeile,++$spalte,"Stundenblockung", $format_bold);
|
||||
$maxlength[$spalte]=15;
|
||||
$worksheet->write($zeile,++$spalte,"Wochenrythmus", $format_bold);
|
||||
$worksheet->write($zeile,++$spalte,"Wochenrhythmus", $format_bold);
|
||||
$maxlength[$spalte]=13;
|
||||
$worksheet->write($zeile,++$spalte,"Raum", $format_bold);
|
||||
$maxlength[$spalte]=4;
|
||||
|
||||
@@ -242,6 +242,8 @@ function AufnahmeTermineAuswahl()
|
||||
var teilgenommen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#teilgenommen" ));
|
||||
var punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
|
||||
var studienplan_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studienplan_id" ));
|
||||
var endpunkte_inkl_gebiete = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#endpunkte_inkl_gebiete" ));
|
||||
var endpunkte_exkl_gebiete = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#endpunkte_exkl_gebiete" ));
|
||||
|
||||
document.getElementById('aufnahmetermine-textbox-rt_person_id').value=rt_person_id;
|
||||
document.getElementById('aufnahmetermine-textbox-person_id').value=person_id;
|
||||
@@ -255,6 +257,8 @@ function AufnahmeTermineAuswahl()
|
||||
document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked=false;
|
||||
document.getElementById('aufnahmetermine-textbox-punkte').value=punkte;
|
||||
document.getElementById('aufnahmetermine-menulist-studienplan').value=studienplan_id;
|
||||
document.getElementById('aufnahmetermine-textbox-endpunkte-inkl-gebiete').value = endpunkte_inkl_gebiete;
|
||||
document.getElementById('aufnahmetermine-textbox-endpunkte-exkl-gebiete').value = endpunkte_exkl_gebiete;
|
||||
}
|
||||
|
||||
function AufnahmeTermineNeu()
|
||||
|
||||
@@ -293,7 +293,19 @@ echo ']>
|
||||
<toolbarbutton id="aufnahmetermine-button-reihungstest-punktesync" image="../../skin/images/transmit.png" tooltiptext="Reihungstest Ergebnis holen" onclick="AufnahemTermineReihungstestPunkteTransmit()"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Punkte inkl. Physik" control="aufnahmetermine-textbox-endpunkte-inkl-gebiete" />
|
||||
<hbox>
|
||||
<textbox id="aufnahmetermine-textbox-endpunkte-inkl-gebiete" readonly="true" maxlength="8" size="6"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Punkte exkl. Physik" control="aufnahmetermine-textbox-endpunkte-exkl-gebiete" />
|
||||
<hbox>
|
||||
<textbox id="aufnahmetermine-textbox-endpunkte-exkl-gebiete" readonly="true" maxlength="8" size="6"/>
|
||||
</hbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox>
|
||||
|
||||
@@ -293,7 +293,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<box class="Datum" id="student-abschlusspruefung-datum-datum" disabled="true"/>
|
||||
</vbox>
|
||||
</row>
|
||||
<row>
|
||||
<row id="student-abschlusspruefung-datum-uhrzeit-row">
|
||||
<vbox>
|
||||
<label value="Uhrzeit" control="student-abschlusspruefung-datum-uhrzeit" />
|
||||
</vbox>
|
||||
|
||||
@@ -864,7 +864,7 @@ function StudentProjektbetreuerDetailReset()
|
||||
document.getElementById('student-projektbetreuer-textbox-faktor').value='1';
|
||||
document.getElementById('student-projektbetreuer-textbox-name').value='';
|
||||
document.getElementById('student-projektbetreuer-menulist-note').value='';
|
||||
|
||||
|
||||
document.getElementById('student-projektbetreuer-textbox-punkte').value='0.0';
|
||||
|
||||
if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Diplom')
|
||||
@@ -874,7 +874,7 @@ function StudentProjektbetreuerDetailReset()
|
||||
}
|
||||
else if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Bachelor')
|
||||
{
|
||||
document.getElementById('student-projektbetreuer-textbox-stunden').value='3.0';
|
||||
document.getElementById('student-projektbetreuer-textbox-stunden').value='4.0';
|
||||
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Begutachter';
|
||||
}
|
||||
else if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Praktikum')
|
||||
|
||||
@@ -567,7 +567,7 @@ class ablauf extends basis_db
|
||||
$obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id;
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->sprache = $row->sprache;
|
||||
$obj->sprachwahl = $row->sprachwahl;
|
||||
$obj->sprachwahl = $this->db_parse_bool($row->sprachwahl);
|
||||
$obj->content_id = $row->content_id;
|
||||
|
||||
$this->result[]= $obj;
|
||||
|
||||
@@ -194,7 +194,7 @@ class firma extends basis_db
|
||||
$this->db_add_param($this->aktiv, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->finanzamt, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->partner_code).','.
|
||||
$this->db_add_param($this->lieferant, FHC_INTEGER).'); ';
|
||||
$this->db_add_param($this->lieferant, FHC_BOOLEAN).'); ';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -137,6 +137,7 @@ class organisationseinheit extends basis_db
|
||||
$this->mailverteiler = $this->db_parse_bool($row->mailverteiler);
|
||||
$this->lehre = $this->db_parse_bool($row->lehre);
|
||||
$this->standort_id = $row->standort_id;
|
||||
$this->freigabegrenze = $row->freigabegrenze;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -994,4 +994,33 @@ class person extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt eine Person anhand der Matrikelnummer
|
||||
*
|
||||
* @param $matr_nr Matrikelnummer
|
||||
* @return boolean true wenn ok, false im Fehlerfall.
|
||||
*/
|
||||
public function getPersonByMatrNr($matr_nr)
|
||||
{
|
||||
$qry = "SELECT person_id FROM public.tbl_person WHERE matr_nr=".$this->db_add_param($matr_nr);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $this->load($row->person_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Person nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,6 +420,96 @@ class prestudent extends person
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt über einen Prestudenten alle anderen Prestudenten einer Person, die aktuell an STG interessiert sind.
|
||||
* @integer $prestudent_id Prestudent ID, über die alle weiteren Prestudenten ermittelt werden sollen.
|
||||
* @boolean $prio Wenn true, dann wird nur der Prestudent mit dem am höchsten priorisierten Studiengang zurückgegeben.
|
||||
* return Objekt-Array mit allen Prestudenten einer Person, die aktuell an STG interessiert sind.
|
||||
*/
|
||||
public function getActualInteressenten($prestudent_id, $prio = false)
|
||||
{
|
||||
if (is_numeric($prestudent_id))
|
||||
{
|
||||
$qry = "
|
||||
SELECT DISTINCT ON (priorisierung, prestudent_id)
|
||||
priorisierung,
|
||||
prestudent_id,
|
||||
studienplan_id,
|
||||
studiengang_kz,
|
||||
ausbildungssemester
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
JOIN
|
||||
public.tbl_prestudent USING (prestudent_id)
|
||||
WHERE
|
||||
tbl_prestudent.person_id = (
|
||||
SELECT
|
||||
person_id
|
||||
FROM
|
||||
public.tbl_prestudent
|
||||
WHERE
|
||||
prestudent_id = ". $this->db_add_param($prestudent_id). "
|
||||
)
|
||||
|
||||
-- Filter only future studiensemester (incl. actual one)
|
||||
AND
|
||||
studiensemester_kurzbz IN (
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
ende > now()
|
||||
)
|
||||
|
||||
AND
|
||||
status_kurzbz = 'Interessent'
|
||||
|
||||
-- Order to get the very last status and highest prio on top
|
||||
ORDER BY
|
||||
priorisierung NULLS LAST,
|
||||
prestudent_id,
|
||||
datum DESC,
|
||||
tbl_prestudentstatus.insertamum DESC,
|
||||
tbl_prestudentstatus.ext_id DESC
|
||||
" ;
|
||||
|
||||
if ($prio)
|
||||
{
|
||||
$qry .= "
|
||||
LIMIT 1
|
||||
";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->prestudent_id = $row->prestudent_id;
|
||||
$obj->studienplan_id = $row->studienplan_id;
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->ausbildungssemester = $row->ausbildungssemester;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'prestudent_id muss numerisch sein.';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Rolle(n) eines Prestudenten
|
||||
*/
|
||||
|
||||
@@ -313,12 +313,25 @@ class pruefling extends basis_db
|
||||
* @param $person_id ID der Person.
|
||||
* @param $punkte Wenn true werden Punkte geliefert, sonst Prozentsumme.
|
||||
* @param $reihungstest_id ID des Reihungstests.
|
||||
* @param $has_excluded_gebiete Wenn true werden die Punkte der Fragengebiete, die im config-array
|
||||
* definiert sind, bei der Berechnung der Endpunkte nicht berücksichtigt.
|
||||
* @return Endpunkte des Reihungstests oder False wenn keine Punkte vorhanden
|
||||
*/
|
||||
public function getReihungstestErgebnisPerson($person_id, $punkte=false, $reihungstest_id=null)
|
||||
public function getReihungstestErgebnisPerson($person_id, $punkte=false, $reihungstest_id=null, $has_excluded_gebiete = false)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.vw_auswertung
|
||||
WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
|
||||
|
||||
if ($has_excluded_gebiete)
|
||||
{
|
||||
if (defined('FAS_REIHUNGSTEST_EXCLUDE_GEBIETE') && !empty(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE))
|
||||
{
|
||||
$exclude_gebiet_id_arr = FAS_REIHUNGSTEST_EXCLUDE_GEBIETE;
|
||||
$exclude_gebiet_id_toString = implode(', ', $exclude_gebiet_id_arr);
|
||||
$qry .= " AND gebiet_id NOT IN (". $exclude_gebiet_id_toString. ")";
|
||||
}
|
||||
}
|
||||
|
||||
$ergebnis=0;
|
||||
|
||||
if(!is_null($reihungstest_id))
|
||||
|
||||
+482
-451
@@ -1,451 +1,482 @@
|
||||
<?php
|
||||
/* Copyright (C) 20012 FH Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
* Klasse Service
|
||||
*
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class service extends basis_db
|
||||
{
|
||||
public $new;
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $service_id; // bigint
|
||||
public $bezeichnung; // varchar(64)
|
||||
public $beschreibung; // text
|
||||
public $ext_id; // bigint
|
||||
public $oe_kurzbz; // varchar(32)
|
||||
public $content_id; // integer
|
||||
public $design_uid; // varchar(32)
|
||||
public $betrieb_uid; // varchar(32)
|
||||
public $operativ_uid; // varchar(32)
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional ein Service
|
||||
* @param $service_id
|
||||
*/
|
||||
public function __construct($service_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($service_id))
|
||||
$this->load($service_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt ein Service mit der uebergebenen ID
|
||||
*
|
||||
* @param $service_id
|
||||
* @return boolean
|
||||
*/
|
||||
public function load($service_id)
|
||||
{
|
||||
if(!is_numeric($service_id))
|
||||
{
|
||||
$this->errormsg = 'Service ID ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$qry = "SELECT * FROM public.tbl_service WHERE service_id=".$this->db_add_param($service_id, FHC_INTEGER);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->service_id = $row->service_id;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->beschreibung = $row->beschreibung;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->oe_kurzbz = $row->oe_kurzbz;
|
||||
$this->content_id = $row->content_id;
|
||||
$this->design_uid = $row->design_uid;
|
||||
$this->betrieb_uid = $row->betrieb_uid;
|
||||
$this->operativ_uid = $row->operativ_uid;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Service mit dieser ID exisitert nicht';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Service';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle vorhandenen Services
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_service ORDER BY oe_kurzbz, bezeichnung";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht ein Service
|
||||
*
|
||||
* @param $suchstring
|
||||
*/
|
||||
public function search($suchstring)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_service WHERE 1=1 ";
|
||||
foreach($suchstring as $value)
|
||||
$qry.="AND (lower(beschreibung::text) like lower('%".$this->db_escape($value)."%')
|
||||
OR lower(beschreibung::text) like lower('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
|
||||
$qry.=" ORDER BY oe_kurzbz, bezeichnung";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle vorhandenen Services, sortiert nach den am haeufigsten vom User in der Zeitaufzeichnung verwendeten
|
||||
*
|
||||
* <p>Optionaler Zeitraum (Tage in die Vergangenheit), in denen das Service vorkommt<br>
|
||||
* Optionale Anzahl an Ereignissen im angegebenen Zeitraum, um das Service zu beruecksichtigen</p>
|
||||
*
|
||||
* @param string $user uid
|
||||
* @param integer $zeitraum Anzahl Tage in die Vergangenheit, die fuer das Auftreten des Service beruecksichtigt werden sollen
|
||||
* @param integer $anzahl_ereignisse default: 3 Wie oft soll dieses Service mindestens in $zeitraum vorkommen, um beruecksichtigt zu werden
|
||||
*/
|
||||
public function getFrequentServices($user, $zeitraum=null, $anzahl_ereignisse='3')
|
||||
{
|
||||
if(!is_numeric($anzahl_ereignisse))
|
||||
{
|
||||
$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
|
||||
$zeit = "";
|
||||
|
||||
$qry = " SELECT tbl_service.*, count(tbl_zeitaufzeichnung.service_id)
|
||||
FROM campus.tbl_zeitaufzeichnung
|
||||
JOIN public.tbl_service USING (service_id)
|
||||
WHERE tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
|
||||
$zeit
|
||||
GROUP BY tbl_service.service_id HAVING COUNT(*) > $anzahl_ereignisse
|
||||
|
||||
UNION
|
||||
SELECT tbl_service.*, '0' AS anzahl
|
||||
FROM public.tbl_service
|
||||
|
||||
ORDER BY count DESC,bezeichnung,oe_kurzbz";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->anzahl = $row->count;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Services der uebergebenen OE
|
||||
*
|
||||
* @param string $oe_kurzbz OE_Kurzbezeichnung der zu suchenden Services.
|
||||
* @param integer $content_id Default: null. Wenn true, werden nur OEs mit eingetragener Content_id zurückgegeben.
|
||||
* Wenn content_id übergeben wird, wird nur das entsprechende Service zurückgegeben.
|
||||
*/
|
||||
public function getServicesOrganisationseinheit($oe_kurzbz, $content_id=null)
|
||||
{
|
||||
$qry = 'SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_service
|
||||
WHERE
|
||||
oe_kurzbz='.$this->db_add_param($oe_kurzbz);
|
||||
|
||||
if (!is_null($content_id) && is_numeric($content_id))
|
||||
$qry.= ' AND content_id='.$this->db_add_param($content_id);
|
||||
elseif ($content_id==true)
|
||||
$qry.= ' AND (content_id IS NOT NULL OR ext_id IS NOT NULL)';
|
||||
else
|
||||
$qry.= '';
|
||||
|
||||
$qry.= ' ORDER BY bezeichnung';
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Services der uebergebenen OE und alle Services, die dieser OE untergliedert sind
|
||||
*
|
||||
* @param string $oe_kurzbz
|
||||
* @param string $order Default: oe_kurzbz,bezeichnung
|
||||
* @param integer $content_id Default: null. Wenn true, werden nur OEs mit eingetragener Content_id zurückgegeben.
|
||||
* Wenn content_id übergeben wird, wird nur das entsprechende Service zurückgegeben.
|
||||
*/
|
||||
public function getSubServicesOrganisationseinheit($oe_kurzbz, $order='oe_kurzbz,bezeichnung', $content_id=null)
|
||||
{
|
||||
$qry = 'SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_service
|
||||
WHERE
|
||||
oe_kurzbz IN (SELECT oe_kurzbz FROM public.tbl_organisationseinheit WHERE oe_parent_kurzbz='.$this->db_add_param($oe_kurzbz).')';
|
||||
if (!is_null($content_id) && is_numeric($content_id))
|
||||
$qry.= ' AND content_id='.$this->db_add_param($content_id);
|
||||
elseif ($content_id==true)
|
||||
$qry.= ' AND content_id IS NOT NULL';
|
||||
else
|
||||
$qry.= '';
|
||||
|
||||
if (!is_null($order))
|
||||
$qry.= ' ORDER BY '.$order;
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Daten vor dem Speichern
|
||||
* @return boolean
|
||||
*/
|
||||
public function validate()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert ein Service
|
||||
* @param $new
|
||||
*/
|
||||
public function save($new=null)
|
||||
{
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = "BEGIN;INSERT INTO public.tbl_service (bezeichnung, beschreibung, oe_kurzbz, content_id, ext_id, design_uid, betrieb_uid, operativ_uid)
|
||||
VALUES(".
|
||||
$this->db_add_param($this->bezeichnung).','.
|
||||
$this->db_add_param($this->beschreibung).','.
|
||||
$this->db_add_param($this->oe_kurzbz).','.
|
||||
$this->db_add_param($this->content_id).','.
|
||||
$this->db_add_param($this->ext_id).','.
|
||||
$this->db_add_param($this->design_uid).','.
|
||||
$this->db_add_param($this->betrieb_uid).','.
|
||||
$this->db_add_param($this->operativ_uid).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE public.tbl_service SET'.
|
||||
' bezeichnung = '.$this->db_add_param($this->bezeichnung).','.
|
||||
' beschreibung = '.$this->db_add_param($this->beschreibung).','.
|
||||
' oe_kurzbz = '.$this->db_add_param($this->oe_kurzbz).','.
|
||||
' content_id = '.$this->db_add_param($this->content_id).','.
|
||||
' ext_id = '.$this->db_add_param($this->ext_id).','.
|
||||
' design_uid = '.$this->db_add_param($this->design_uid).','.
|
||||
' betrieb_uid = '.$this->db_add_param($this->betrieb_uid).','.
|
||||
' operativ_uid = '.$this->db_add_param($this->operativ_uid).
|
||||
' WHERE service_id='.$this->db_add_param($this->service_id, FHC_INTEGER).';';
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($new)
|
||||
{
|
||||
$qry = "SELECT currval('public.seq_service_service_id') as id";
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->service_id = $row->id;
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Service
|
||||
|
||||
* @param $service_id
|
||||
*/
|
||||
public function delete($service_id)
|
||||
{
|
||||
if(!is_numeric($service_id))
|
||||
{
|
||||
$this->errormsg='ID ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
$qry = "DELETE FROM public.tbl_service WHERE service_id=".$this->db_add_param($service_id);
|
||||
|
||||
if($this->db_query($qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Loeschen des Service';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/* Copyright (C) 20012 FH Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
* Klasse Service
|
||||
*
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class service extends basis_db
|
||||
{
|
||||
public $new;
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $service_id; // bigint
|
||||
public $bezeichnung; // varchar(64)
|
||||
public $beschreibung; // text
|
||||
public $ext_id; // bigint
|
||||
public $oe_kurzbz; // varchar(32)
|
||||
public $content_id; // integer
|
||||
public $design_uid; // varchar(32)
|
||||
public $betrieb_uid; // varchar(32)
|
||||
public $operativ_uid; // varchar(32)
|
||||
public $servicekategorie_kurzbz; // varchar(32)
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional ein Service
|
||||
* @param $service_id
|
||||
*/
|
||||
public function __construct($service_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($service_id))
|
||||
$this->load($service_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt ein Service mit der uebergebenen ID
|
||||
*
|
||||
* @param $service_id
|
||||
* @return boolean
|
||||
*/
|
||||
public function load($service_id)
|
||||
{
|
||||
if(!is_numeric($service_id))
|
||||
{
|
||||
$this->errormsg = 'Service ID ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$qry = "SELECT * FROM public.tbl_service WHERE service_id=".$this->db_add_param($service_id, FHC_INTEGER);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->service_id = $row->service_id;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->beschreibung = $row->beschreibung;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->oe_kurzbz = $row->oe_kurzbz;
|
||||
$this->content_id = $row->content_id;
|
||||
$this->design_uid = $row->design_uid;
|
||||
$this->betrieb_uid = $row->betrieb_uid;
|
||||
$this->operativ_uid = $row->operativ_uid;
|
||||
$this->servicekategorie_kurzbz = $row->servicekategorie_kurzbz;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Service mit dieser ID exisitert nicht';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Service';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle vorhandenen Services
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_service ORDER BY oe_kurzbz, bezeichnung";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
$obj->servicekategorie_kurzbz = $row->servicekategorie_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht ein Service
|
||||
*
|
||||
* @param $suchstring
|
||||
*/
|
||||
public function search($suchstring)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_service WHERE 1=1 ";
|
||||
foreach($suchstring as $value)
|
||||
$qry.="AND (lower(beschreibung::text) like lower('%".$this->db_escape($value)."%')
|
||||
OR lower(beschreibung::text) like lower('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
|
||||
$qry.=" ORDER BY oe_kurzbz, bezeichnung";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
$obj->servicekategorie_kurzbz = $row->servicekategorie_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle vorhandenen Services, sortiert nach den am haeufigsten vom User in der Zeitaufzeichnung verwendeten
|
||||
*
|
||||
* <p>Optionaler Zeitraum (Tage in die Vergangenheit), in denen das Service vorkommt<br>
|
||||
* Optionale Anzahl an Ereignissen im angegebenen Zeitraum, um das Service zu beruecksichtigen</p>
|
||||
*
|
||||
* @param string $user uid
|
||||
* @param integer $zeitraum Anzahl Tage in die Vergangenheit, die fuer das Auftreten des Service beruecksichtigt werden sollen
|
||||
* @param integer $anzahl_ereignisse default: 3 Wie oft soll dieses Service mindestens in $zeitraum vorkommen, um beruecksichtigt zu werden
|
||||
*/
|
||||
public function getFrequentServices($user, $zeitraum=null, $anzahl_ereignisse='3')
|
||||
{
|
||||
if(!is_numeric($anzahl_ereignisse))
|
||||
{
|
||||
$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
|
||||
$zeit = "";
|
||||
|
||||
$qry = " SELECT tbl_service.*, count(tbl_zeitaufzeichnung.service_id)
|
||||
FROM campus.tbl_zeitaufzeichnung
|
||||
JOIN public.tbl_service USING (service_id)
|
||||
WHERE tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
|
||||
$zeit
|
||||
GROUP BY tbl_service.service_id HAVING COUNT(*) > $anzahl_ereignisse
|
||||
|
||||
UNION
|
||||
SELECT tbl_service.*, '0' AS anzahl
|
||||
FROM public.tbl_service
|
||||
|
||||
ORDER BY count DESC,bezeichnung,oe_kurzbz";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->anzahl = $row->count;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
$obj->servicekategorie_kurzbz = $row->servicekategorie_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Services der uebergebenen OE
|
||||
*
|
||||
* @param string $oe_kurzbz OE_Kurzbezeichnung der zu suchenden Services.
|
||||
* @param integer $content_id Default: null. Wenn true, werden nur OEs mit eingetragener Content_id zurückgegeben.
|
||||
* Wenn content_id übergeben wird, wird nur das entsprechende Service zurückgegeben.
|
||||
*/
|
||||
public function getServicesOrganisationseinheit($oe_kurzbz, $content_id=null)
|
||||
{
|
||||
$qry = 'SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_service
|
||||
WHERE
|
||||
oe_kurzbz='.$this->db_add_param($oe_kurzbz);
|
||||
|
||||
if (!is_null($content_id) && is_numeric($content_id))
|
||||
$qry.= ' AND content_id='.$this->db_add_param($content_id);
|
||||
elseif ($content_id==true)
|
||||
$qry.= ' AND (content_id IS NOT NULL OR ext_id IS NOT NULL)';
|
||||
else
|
||||
$qry.= '';
|
||||
|
||||
$qry.= ' ORDER BY bezeichnung';
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
$obj->servicekategorie_kurzbz = $row->servicekategorie_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Services der uebergebenen OE und alle Services, die dieser OE untergliedert sind
|
||||
*
|
||||
* @param string $oe_kurzbz
|
||||
* @param string $order Default: oe_kurzbz,bezeichnung
|
||||
* @param integer $content_id Default: null. Wenn true, werden nur OEs mit eingetragener Content_id zurückgegeben.
|
||||
* Wenn content_id übergeben wird, wird nur das entsprechende Service zurückgegeben.
|
||||
*/
|
||||
public function getSubServicesOrganisationseinheit($oe_kurzbz, $order='oe_kurzbz,bezeichnung', $content_id=null)
|
||||
{
|
||||
$qry = 'SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_service
|
||||
WHERE
|
||||
oe_kurzbz IN (SELECT oe_kurzbz FROM public.tbl_organisationseinheit WHERE oe_parent_kurzbz='.$this->db_add_param($oe_kurzbz).')';
|
||||
if (!is_null($content_id) && is_numeric($content_id))
|
||||
$qry.= ' AND content_id='.$this->db_add_param($content_id);
|
||||
elseif ($content_id==true)
|
||||
$qry.= ' AND content_id IS NOT NULL';
|
||||
else
|
||||
$qry.= '';
|
||||
|
||||
if (!is_null($order))
|
||||
$qry.= ' ORDER BY '.$order;
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new service();
|
||||
|
||||
$obj->service_id = $row->service_id;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->content_id = $row->content_id;
|
||||
$obj->design_uid = $row->design_uid;
|
||||
$obj->betrieb_uid = $row->betrieb_uid;
|
||||
$obj->operativ_uid = $row->operativ_uid;
|
||||
$obj->servicekategorie_kurzbz = $row->servicekategorie_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Daten vor dem Speichern
|
||||
* @return boolean
|
||||
*/
|
||||
public function validate()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert ein Service
|
||||
* @param $new
|
||||
*/
|
||||
public function save($new=null)
|
||||
{
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = "BEGIN;INSERT INTO public.tbl_service (bezeichnung, beschreibung, oe_kurzbz, content_id, ext_id,
|
||||
design_uid, betrieb_uid, operativ_uid, servicekategorie_kurzbz)
|
||||
VALUES(".
|
||||
$this->db_add_param($this->bezeichnung).','.
|
||||
$this->db_add_param($this->beschreibung).','.
|
||||
$this->db_add_param($this->oe_kurzbz).','.
|
||||
$this->db_add_param($this->content_id).','.
|
||||
$this->db_add_param($this->ext_id).','.
|
||||
$this->db_add_param($this->design_uid).','.
|
||||
$this->db_add_param($this->betrieb_uid).','.
|
||||
$this->db_add_param($this->operativ_uid).','.
|
||||
$this->db_add_param($this->servicekategorie_kurzbz).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE public.tbl_service SET'.
|
||||
' bezeichnung = '.$this->db_add_param($this->bezeichnung).','.
|
||||
' beschreibung = '.$this->db_add_param($this->beschreibung).','.
|
||||
' oe_kurzbz = '.$this->db_add_param($this->oe_kurzbz).','.
|
||||
' content_id = '.$this->db_add_param($this->content_id).','.
|
||||
' ext_id = '.$this->db_add_param($this->ext_id).','.
|
||||
' design_uid = '.$this->db_add_param($this->design_uid).','.
|
||||
' betrieb_uid = '.$this->db_add_param($this->betrieb_uid).','.
|
||||
' operativ_uid = '.$this->db_add_param($this->operativ_uid).','.
|
||||
' servicekategorie_kurzbz = '.$this->db_add_param($this->servicekategorie_kurzbz).
|
||||
' WHERE service_id='.$this->db_add_param($this->service_id, FHC_INTEGER).';';
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($new)
|
||||
{
|
||||
$qry = "SELECT currval('public.seq_service_service_id') as id";
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->service_id = $row->id;
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Service
|
||||
|
||||
* @param $service_id
|
||||
*/
|
||||
public function delete($service_id)
|
||||
{
|
||||
if(!is_numeric($service_id))
|
||||
{
|
||||
$this->errormsg='ID ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
$qry = "DELETE FROM public.tbl_service WHERE service_id=".$this->db_add_param($service_id);
|
||||
|
||||
if($this->db_query($qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Loeschen des Service';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getKategorieArray()
|
||||
{
|
||||
$kategorien = array();
|
||||
|
||||
$qry = 'SELECT * FROM public.tbl_servicekategorie ORDER BY sort';
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$kategorien[$row->servicekategorie_kurzbz] = $row->bezeichnung;
|
||||
}
|
||||
return $kategorien;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -567,11 +567,17 @@ class student extends benutzer
|
||||
* @param studiengang_kz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load_person($person_id, $studiengang_kz)
|
||||
public function load_person($person_id, $studiengang_kz = null)
|
||||
{
|
||||
$qry = "SELECT tbl_student.* FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid)
|
||||
WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER)." AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)."
|
||||
ORDER BY prestudent_id DESC LIMIT 1";
|
||||
WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
|
||||
|
||||
if($studiengang_kz != '')
|
||||
{
|
||||
$qry .= " AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
}
|
||||
|
||||
$qry .= " ORDER BY prestudent_id DESC LIMIT 1";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
|
||||
@@ -129,7 +129,7 @@ $menu=array
|
||||
),
|
||||
'Stammdaten'=> array
|
||||
(
|
||||
'name'=>'Stammdaten', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support','basis/berechtigung','basis/variable','basis/studiengang','basis/ort','basis/firma','basis/fhausweis','basis/infoscreen'), 'image'=>'vilesci_stammdaten.png',
|
||||
'name'=>'Stammdaten', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support','basis/berechtigung','basis/variable','basis/studiengang','basis/ort','basis/firma','basis/fhausweis','basis/infoscreen','basis/organisationseinheit'), 'image'=>'vilesci_stammdaten.png',
|
||||
'link'=>'left.php?categorie=Stammdaten', 'target'=>'nav',
|
||||
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('admin','assistenz')),
|
||||
|
||||
@@ -645,6 +645,7 @@ class wochenplan extends basis_db
|
||||
die($this->db_last_error());
|
||||
$result_stunde = $this->db_result;
|
||||
$num_rows_stunde = $this->db_num_rows($result_stunde);
|
||||
$raumReservierbar = true;
|
||||
|
||||
$stundenplandev_belegt = array();
|
||||
// Formularbeginn wenn Lektor
|
||||
@@ -670,7 +671,10 @@ class wochenplan extends basis_db
|
||||
}
|
||||
}
|
||||
else
|
||||
$raumres=false;
|
||||
{
|
||||
$raumres = false;
|
||||
$raumReservierbar = false;
|
||||
}
|
||||
}
|
||||
|
||||
//Tabelle zeichnen
|
||||
@@ -696,6 +700,8 @@ class wochenplan extends basis_db
|
||||
if (!date("w",$this->datum))
|
||||
$this->datum=jump_day($this->datum,1);
|
||||
$datum=$datum_mon=$this->datum;
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user_uid);
|
||||
|
||||
for ($i=1; $i<=TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
@@ -887,7 +893,7 @@ class wochenplan extends basis_db
|
||||
}
|
||||
|
||||
// Ausgabe einer Stunde im Raster (HTML)
|
||||
echo ' <td nowrap valign="top">';
|
||||
echo ' <td nowrap valign="top" align="center">';
|
||||
|
||||
foreach($uEinheiten as $key=>$uEinheit)
|
||||
{
|
||||
@@ -945,6 +951,8 @@ class wochenplan extends basis_db
|
||||
}
|
||||
echo '</A></DIV>';
|
||||
}
|
||||
if ($rechte->isBerechtigt('lehre/reservierungAdvanced', null, 'sui'))
|
||||
echo '<INPUT type="checkbox" name="reserve'.$i.'_'.$j.'" value="'.date("Y-m-d",$datum).'">';
|
||||
echo '</td>'.$this->crlf;
|
||||
}
|
||||
}
|
||||
@@ -978,9 +986,6 @@ class wochenplan extends basis_db
|
||||
echo ' <td>'.$p->t('global/titel').':</td><td><input onchange="if (this.value.length>0 && document.getElementById(\'beschreibung\').value.length<1) {document.getElementById(\'beschreibung\').value=document.getElementById(\'titel\').value;document.getElementById(\'beschreibung\').focus();};" type="text" id="titel" name="titel" size="10" maxlength="10" value="" /></td> '.$this->crlf;
|
||||
echo ' <td>'.$p->t('global/beschreibung').':</td><td colspan="6"> <input onchange="if (this.value.length<1 && document.getElementById(\'titel\').value.length>0) {alert(\'Achtung! Speichern nur mit Beschreibung moeglich!\');this.focus();};" type="text" id="beschreibung" name="beschreibung" size="20" maxlength="32" value="" /> </td>'.$this->crlf;
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user_uid);
|
||||
|
||||
//Pruefen ob die erweiterte Reservierungsrechte vorhanden sind
|
||||
if ($rechte->isBerechtigt('lehre/reservierung', null, 'sui'))
|
||||
{
|
||||
@@ -1109,6 +1114,12 @@ class wochenplan extends basis_db
|
||||
echo '</tr></table></form>';
|
||||
echo ' <a href="stpl_reserve_list.php">'.$p->t('lvplan/reservierungenLoeschen').' </a>';
|
||||
}
|
||||
elseif ($this->type=='ort' && $raumReservierbar == false)
|
||||
{
|
||||
echo '<table><tr><td><br>';
|
||||
echo '<span style="color: orange">'.$p->t('lvplan/raumNichtReservierbar').'</span>';
|
||||
echo '</td></tr></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->type=='ort')
|
||||
|
||||
@@ -98,4 +98,5 @@ $this->phrasen['lvplan/status']='Status';
|
||||
$this->phrasen['lvplan/automatischeMail']='Dies ist eine automatische Mail!';
|
||||
$this->phrasen['lvplan/folgendeAenderungen']='Es haben sich folgende Aenderungen in Ihrem LV-Plan ergeben:';
|
||||
$this->phrasen['lvplan/reserviertInDev']='reserviert<br>für<br>lehre';
|
||||
$this->phrasen['lvplan/raumNichtReservierbar']='Die Möglichkeit der Reservierung ist für diesen Raum deaktiviert.';
|
||||
?>
|
||||
@@ -1,5 +1,5 @@
|
||||
<!ENTITY window.title "Tempus">
|
||||
<!ENTITY window.version "3.2a">
|
||||
<!ENTITY window.title "Tempus">
|
||||
<!ENTITY window.version "3.3">
|
||||
|
||||
|
||||
<!ENTITY menu-file.label "Datei">
|
||||
|
||||
@@ -97,4 +97,5 @@ $this->phrasen['lvplan/status']='Status';
|
||||
$this->phrasen['lvplan/automatischeMail']='This is an automatic email!';
|
||||
$this->phrasen['lvplan/folgendeAenderungen']='There have been the following changes in your Schedule:';
|
||||
$this->phrasen['lvplan/reserviertInDev']='not<br>available';
|
||||
$this->phrasen['lvplan/raumNichtReservierbar']='Reservation is disabled for this room.';
|
||||
?>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
* Authors: Andreas Oesterreicher <oesi@technikum-wien.at>
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../config/global.config.inc.php');
|
||||
require_once('../include/rdf.class.php');
|
||||
require_once('../include/basis_db.class.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
@@ -25,6 +26,7 @@ require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/datum.class.php');
|
||||
require_once('../include/benutzer.class.php');
|
||||
require_once('../include/prestudent.class.php');
|
||||
require_once('../include/pruefling.class.php');
|
||||
require_once('../include/reihungstest.class.php');
|
||||
require_once('../include/studienplan.class.php');
|
||||
require_once('../include/studienordnung.class.php');
|
||||
@@ -92,6 +94,36 @@ if($prestudent_id!='')
|
||||
$zuordnung_fuer_selben_studiengang[] = $row->rt_person_id;
|
||||
$stsem_arr[] = $reihungstest_obj_arr[$row->reihungstest_id]->studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
// Reale (nicht von Assistenz überarbeitete) Gesamtpunkte des RT laden; ggf. ohne bestimmte Fragengebiete
|
||||
$pruefling = new Pruefling();
|
||||
|
||||
// * Gesamtpunkte inklusive alle Fragengebiete
|
||||
$endpunkte_inkl_gebiete = 0;
|
||||
$endpunkte_exkl_gebiete = 0;
|
||||
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
|
||||
{
|
||||
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $row->reihungstest_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $row->reihungstest_id);
|
||||
}
|
||||
// * ggf. Gesamtpunkte exklusive bestimmte Fragengebiete
|
||||
if (defined('FAS_REIHUNGSTEST_EXCLUDE_GEBIETE') && !empty(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE))
|
||||
{
|
||||
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
|
||||
{
|
||||
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $row->reihungstest_id, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $row->reihungstest_id, true);
|
||||
}
|
||||
}
|
||||
|
||||
$row->endpunkte_inkl_gebiete = round($endpunkte_inkl_gebiete, 2);
|
||||
$row->endpunkte_exkl_gebiete = round($endpunkte_exkl_gebiete, 2);
|
||||
}
|
||||
if(count($stsem_arr) > 0)
|
||||
{
|
||||
@@ -111,6 +143,38 @@ elseif($rt_person_id!='')
|
||||
{
|
||||
$reihungstest_obj_arr[$reihungstest->reihungstest_id] = new reihungstest();
|
||||
$reihungstest_obj_arr[$reihungstest->reihungstest_id]->load($reihungstest->reihungstest_id);
|
||||
|
||||
// Reale (nicht von Assistenz überarbeitete) Gesamtpunkte des RT laden; ggf. ohne bestimmte Fragengebiete
|
||||
$pruefling = new Pruefling();
|
||||
|
||||
// * Gesamtpunkte inklusive alle Fragengebiete
|
||||
$endpunkte_inkl_gebiete = 0;
|
||||
$endpunkte_exkl_gebiete = 0;
|
||||
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
|
||||
{
|
||||
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, true, $reihungstest->reihungstest_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$endpunkte_inkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, false, $reihungstest->reihungstest_id);
|
||||
}
|
||||
// * ggf. Gesamtpunkte exklusive bestimmte Fragengebiete
|
||||
if (defined('FAS_REIHUNGSTEST_EXCLUDE_GEBIETE') && !empty(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE))
|
||||
{
|
||||
if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE)
|
||||
{
|
||||
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, true, $reihungstest->reihungstest_id, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$endpunkte_exkl_gebiete = $pruefling->getReihungstestErgebnisPerson($reihungstest->person_id, false, $reihungstest->reihungstest_id, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$reihungstest->endpunkte_inkl_gebiete = round($endpunkte_inkl_gebiete, 2);
|
||||
$reihungstest->endpunkte_exkl_gebiete = round($endpunkte_exkl_gebiete, 2);
|
||||
|
||||
drawrow($reihungstest);
|
||||
}
|
||||
else
|
||||
@@ -162,6 +226,8 @@ function drawrow($row)
|
||||
$oRdf->obj[$i]->setAttribut('studiensemester',$reihungstest_obj->studiensemester_kurzbz,true);
|
||||
$oRdf->obj[$i]->setAttribut('datum',$datum_obj->formatDatum($reihungstest_obj->datum,'d.m.Y'),true);
|
||||
$oRdf->obj[$i]->setAttribut('datum_iso',$reihungstest_obj->datum,true);
|
||||
$oRdf->obj[$i]->setAttribut('endpunkte_inkl_gebiete', $row->endpunkte_inkl_gebiete, true);
|
||||
$oRdf->obj[$i]->setAttribut('endpunkte_exkl_gebiete', $row->endpunkte_exkl_gebiete, true);
|
||||
|
||||
// Es wird der neueste Reihungstest im Studiengang des Prestudenten markiert damit im FAS erkennbar ist welches
|
||||
// Eintraege zur Punkteberechnung verwendet werden
|
||||
|
||||
@@ -41,7 +41,7 @@ if (mb_strlen($filter) < 3)
|
||||
die('Filter muss mindestens 3 Zeichen lang sein');
|
||||
|
||||
$benutzer = new student();
|
||||
$benutzer->getTab($filter);
|
||||
$benutzer->getTab($filter, 'nachname, vorname');
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->getAll(null, false);
|
||||
|
||||
@@ -389,7 +389,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
||||
$abschlussbeurteilung='';
|
||||
// Hole Datum der Sponsion -> wenn keine vorhanden nimm aktuelles datum
|
||||
$qry = "SELECT
|
||||
sponsion, tbl_abschlussbeurteilung.bezeichnung_english, datum
|
||||
sponsion, tbl_abschlussbeurteilung.bezeichnung_english, datum, pruefungstyp_kurzbz
|
||||
FROM
|
||||
lehre.tbl_abschlusspruefung
|
||||
JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz)
|
||||
@@ -400,6 +400,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
||||
$sponsion_datum = date('d.m.Y');
|
||||
$abschlusspruefungsdatum = '';
|
||||
$abschlussbeurteilung='';
|
||||
$pruefungstyp_kurzbz='';
|
||||
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
@@ -408,8 +409,10 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
||||
$sponsion_datum = $datum->formatDatum($row1->sponsion, 'd.m.Y');
|
||||
$abschlusspruefungsdatum = $datum->formatDatum($row1->datum, 'd.m.Y');
|
||||
$abschlussbeurteilung = $row1->bezeichnung_english;
|
||||
$pruefungstyp_kurzbz = $row1->pruefungstyp_kurzbz;
|
||||
}
|
||||
}
|
||||
echo " <pruefungstyp_kurzbz>$pruefungstyp_kurzbz</pruefungstyp_kurzbz>";
|
||||
echo " <abschlussbeurteilung>$abschlussbeurteilung</abschlussbeurteilung>";
|
||||
echo " <abschlusspruefungsdatum>$abschlusspruefungsdatum</abschlusspruefungsdatum>";
|
||||
echo " <sponsion_datum>$sponsion_datum</sponsion_datum>";
|
||||
|
||||
@@ -419,7 +419,7 @@ function drawLehrauftrag($uid)
|
||||
|
||||
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:' ');
|
||||
$lv[$anzahl_lvs]['lehrveranstaltung'] = 'Betreuung '.$row->vorname.' '.$row->nachname;
|
||||
$lv[$anzahl_lvs]['fachbereich'] = (isset($row->oe_kurzbz) && array_key_exists($row->oe_kurzbz, $fb_arr)?$fb_arr[$row->oe_kurzbz]:' ');
|
||||
$lv[$anzahl_lvs]['fachbereich'] = (isset($row->oe_kurzbz) && array_key_exists($row->oe_kurzbz, $oe_arr)?$oe_arr[$row->oe_kurzbz]:' ');
|
||||
$lv[$anzahl_lvs]['gruppe'] = ' ';
|
||||
$lv[$anzahl_lvs]['stunden'] = (isset($row->stunden)?number_format($row->stunden,2):' ');
|
||||
$lv[$anzahl_lvs]['satz'] = (isset($row->stundensatz)?$row->stundensatz:' ');
|
||||
|
||||
@@ -438,7 +438,6 @@ $oRdf->sendHeader();
|
||||
$oRdf->obj[$i]->setAttribut('startkw',$row_le->start_kw);
|
||||
$oRdf->obj[$i]->setAttribut('raumtyp',$row_le->raumtyp);
|
||||
$oRdf->obj[$i]->setAttribut('raumtypalternativ',$row_le->raumtypalternativ);
|
||||
$oRdf->obj[$i]->setAttribut('anmerkung',$row_le->anmerkung);
|
||||
$oRdf->obj[$i]->setAttribut('unr',$row_le->unr);
|
||||
$oRdf->obj[$i]->setAttribut('lvnr',$row_le->lvnr);
|
||||
$oRdf->obj[$i]->setAttribut('gruppen',$grp);
|
||||
|
||||
+258
-227
@@ -1,227 +1,258 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Karl Burkhart <burkhart@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/student.class.php');
|
||||
require_once('../include/benutzer.class.php');
|
||||
require_once('../include/adresse.class.php');
|
||||
require_once('../include/person.class.php');
|
||||
require_once('../include/webservicelog.class.php');
|
||||
|
||||
ini_set("soap.wsdl_cache_enabled", "0");
|
||||
|
||||
$SOAPServer = new SoapServer(APP_ROOT."/soap/semesterticket.wsdl.php?".microtime(true));
|
||||
$SOAPServer->addFunction("verifyData");
|
||||
$SOAPServer->handle();
|
||||
|
||||
$fehler = '';
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Nimmt Anfrage entgegen und überprüft ob Student auch wirklich Student ist (anhand Matrikelnummer)
|
||||
* @param $parameters
|
||||
*/
|
||||
function verifyData($parameters)
|
||||
{
|
||||
global $fehler;
|
||||
class foo{};
|
||||
|
||||
$obj = new foo();
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
// Eintrag in der LogTabelle anlegen
|
||||
$log = new webservicelog();
|
||||
$log->request_data = file_get_contents('php://input');
|
||||
$log->webservicetyp_kurzbz = 'wienerlinien';
|
||||
$log->request_id = $parameters->token;
|
||||
$log->beschreibung = "Semesterticketanfrage";
|
||||
$log->save(true);
|
||||
|
||||
if(!validateRequest($parameters))
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = $fehler;
|
||||
}
|
||||
else
|
||||
{
|
||||
$student = new student();
|
||||
$student_uid = $student->getUidFromMatrikelnummer($parameters->Matrikelnummer);
|
||||
|
||||
// überprüfe ob Benutzer aktiv ist
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($student_uid);
|
||||
if(!$benutzer->bnaktiv)
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler ='1';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
// überprüfe vorname
|
||||
if($benutzer->vorname != $parameters->Vorname)
|
||||
{
|
||||
// es wurde keine übereinstimmung gefunden
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '6';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
if($benutzer->nachname != $parameters->Name)
|
||||
{
|
||||
// es wurde keine übereinstimmung gefunden
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '7';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
// Überprüfe PLZ
|
||||
$adresse = new adresse();
|
||||
$adresse->load_pers($benutzer->person_id);
|
||||
|
||||
$foundAdr = false;
|
||||
foreach($adresse->result as $adr)
|
||||
{
|
||||
if($adr->plz == $parameters->Postleitzahl && $adr->typ == 'h')
|
||||
$foundAdr = true;
|
||||
}
|
||||
if($foundAdr == false)
|
||||
{
|
||||
// es wurde keine übereinstimmung gefunden
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '5';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
// Überprüfe Geburtsdatum
|
||||
$person = new person();
|
||||
$person->load($benutzer->person_id);
|
||||
if($person->gebdatum != $parameters->Geburtsdatum)
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '4';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
// hole prestudentID
|
||||
$student->load($student_uid);
|
||||
if($student->prestudent_id == '')
|
||||
{
|
||||
// es wurde kein student gefunden
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '3';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
// Übergabe von studiensemester -> z.b 11W, 12S auf WS2011, SS2012
|
||||
$year = mb_substr($parameters->Semesterkuerzel, 0,2);
|
||||
$semester = mb_substr($parameters->Semesterkuerzel,2,1);
|
||||
if($semester == 'S')
|
||||
{
|
||||
$semester = 'SS';
|
||||
}
|
||||
else if($semester == 'W')
|
||||
{
|
||||
$semester= 'WS';
|
||||
}
|
||||
else
|
||||
{
|
||||
// ungültiges Semester
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '8';
|
||||
return $obj;
|
||||
}
|
||||
$studiensemester = $semester.'20'.$year;
|
||||
|
||||
// letzten Status holen
|
||||
$qry = "Select public.get_rolle_prestudent ('".$student->prestudent_id."', '".$studiensemester."')";
|
||||
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object())
|
||||
{
|
||||
$status=$row->get_rolle_prestudent;
|
||||
}
|
||||
}
|
||||
// Status Student und Diplomand gültig
|
||||
if($status == 'Student' || $status == 'Diplomand')
|
||||
{
|
||||
$obj->result = 'true';
|
||||
$obj->fehler = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler ='1';
|
||||
}
|
||||
}
|
||||
return $obj;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Prüft die übergebenen Parameter auf Richtigkeit
|
||||
* @param $parameter
|
||||
*/
|
||||
function validateRequest($parameter)
|
||||
{
|
||||
/**
|
||||
* Fehlercodes
|
||||
* 1: Kein aufrechtes Studium
|
||||
* 2: Fehlerhafter Request
|
||||
* 3: Student wurde nicht gefunden
|
||||
* 4: Fehler Geburtsdatum
|
||||
* 5: Fehler Postleitzahl
|
||||
* 6: Fehler Vorname
|
||||
* 7: Fehler Nachname
|
||||
* 8: Fehler Semester
|
||||
* 9: Fehler Matrikelnummer
|
||||
*/
|
||||
|
||||
global $fehler;
|
||||
|
||||
if(mb_strlen($parameter->Postleitzahl) > 10)
|
||||
{
|
||||
$fehler = '5';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($parameter->Vorname) > 255)
|
||||
{
|
||||
$fehler = '6';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($parameter->Name) > 255)
|
||||
{
|
||||
$fehler = '7';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mb_strlen($parameter->Matrikelnummer) >15 || $parameter->Matrikelnummer == '')
|
||||
{
|
||||
$fehler = '9';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
?>
|
||||
<?php
|
||||
/* Copyright (C) 2010 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Karl Burkhart <burkhart@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/student.class.php');
|
||||
require_once('../include/benutzer.class.php');
|
||||
require_once('../include/adresse.class.php');
|
||||
require_once('../include/person.class.php');
|
||||
require_once('../include/webservicelog.class.php');
|
||||
|
||||
ini_set("soap.wsdl_cache_enabled", "0");
|
||||
|
||||
$SOAPServer = new SoapServer(APP_ROOT."/soap/semesterticket.wsdl.php?".microtime(true));
|
||||
$SOAPServer->addFunction("verifyData");
|
||||
$SOAPServer->handle();
|
||||
|
||||
$fehler = '';
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Nimmt Anfrage entgegen und überprüft ob Student auch wirklich Student ist (anhand Matrikelnummer)
|
||||
* @param $parameters
|
||||
*/
|
||||
function verifyData($parameters)
|
||||
{
|
||||
global $fehler;
|
||||
|
||||
$obj = new stdClass();
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
// Eintrag in der LogTabelle anlegen
|
||||
$log = new webservicelog();
|
||||
$log->request_data = file_get_contents('php://input');
|
||||
$log->webservicetyp_kurzbz = 'wienerlinien';
|
||||
$log->request_id = $parameters->Token;
|
||||
$log->beschreibung = "Semesterticketanfrage";
|
||||
$log->save(true);
|
||||
|
||||
if(!validateRequest($parameters))
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = $fehler;
|
||||
}
|
||||
else
|
||||
{
|
||||
// nach Personenkennzeichen suchen
|
||||
$student = new student();
|
||||
$student_uid = $student->getUidFromMatrikelnummer($parameters->Matrikelnummer);
|
||||
$studenten_arr = array();
|
||||
|
||||
if($student_uid !== false)
|
||||
{
|
||||
// überprüfe ob Benutzer aktiv ist
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($student_uid);
|
||||
if(!$benutzer->bnaktiv)
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler ='1';
|
||||
return $obj;
|
||||
}
|
||||
$person = new person();
|
||||
if(!$person->load($benutzer->person_id))
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler ='3';
|
||||
return $obj;
|
||||
}
|
||||
$studenten_arr[] = $student_uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
// nach richtiger Matrikelnummer suchen
|
||||
$person = new person();
|
||||
if(!$person->getPersonByMatrNr($parameters->Matrikelnummer))
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '9';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
// Aktive Accounts der Person laden
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->getBenutzerFromPerson($person->person_id);
|
||||
foreach($benutzer->result as $row)
|
||||
{
|
||||
$studenten_arr[] = $row->uid;
|
||||
}
|
||||
}
|
||||
|
||||
// überprüfe vorname
|
||||
if($person->vorname != $parameters->Vorname)
|
||||
{
|
||||
// es wurde keine übereinstimmung gefunden
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '6';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
if($person->nachname != $parameters->Name)
|
||||
{
|
||||
// es wurde keine übereinstimmung gefunden
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '7';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
// Überprüfe PLZ
|
||||
$adresse = new adresse();
|
||||
$adresse->load_pers($person->person_id);
|
||||
|
||||
$foundAdr = false;
|
||||
foreach($adresse->result as $adr)
|
||||
{
|
||||
if($adr->plz == $parameters->Postleitzahl && $adr->typ == 'h')
|
||||
$foundAdr = true;
|
||||
}
|
||||
if($foundAdr == false)
|
||||
{
|
||||
// es wurde keine übereinstimmung gefunden
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '5';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
// Überprüfe Geburtsdatum
|
||||
if($person->gebdatum != $parameters->Geburtsdatum)
|
||||
{
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '4';
|
||||
return $obj;
|
||||
}
|
||||
|
||||
foreach($studenten_arr as $student_uid)
|
||||
{
|
||||
// hole prestudentID
|
||||
if(!$student->load($student_uid))
|
||||
continue;
|
||||
|
||||
// Übergabe von studiensemester -> z.b 11W, 12S auf WS2011, SS2012
|
||||
$year = mb_substr($parameters->Semesterkuerzel, 0,2);
|
||||
$semester = mb_substr($parameters->Semesterkuerzel,2,1);
|
||||
if($semester == 'S')
|
||||
{
|
||||
$semester = 'SS';
|
||||
}
|
||||
else if($semester == 'W')
|
||||
{
|
||||
$semester= 'WS';
|
||||
}
|
||||
else
|
||||
{
|
||||
// ungültiges Semester
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '8';
|
||||
return $obj;
|
||||
}
|
||||
$studiensemester = $semester.'20'.$year;
|
||||
|
||||
// letzten Status holen
|
||||
$qry = "Select public.get_rolle_prestudent ('".$student->prestudent_id."', '".$studiensemester."')";
|
||||
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object())
|
||||
{
|
||||
$status=$row->get_rolle_prestudent;
|
||||
}
|
||||
}
|
||||
// Status Student und Diplomand gültig
|
||||
if($status == 'Student' || $status == 'Diplomand')
|
||||
{
|
||||
$obj->result = 'true';
|
||||
$obj->fehler = '';
|
||||
return $obj;
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// es wurde kein passender student gefunden
|
||||
$obj->result = 'false';
|
||||
$obj->fehler = '1';
|
||||
return $obj;
|
||||
}
|
||||
return $obj;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Prüft die übergebenen Parameter auf Richtigkeit
|
||||
* @param $parameter
|
||||
*/
|
||||
function validateRequest($parameter)
|
||||
{
|
||||
/**
|
||||
* Fehlercodes
|
||||
* 1: Kein aufrechtes Studium
|
||||
* 2: Fehlerhafter Request
|
||||
* 3: Student wurde nicht gefunden
|
||||
* 4: Fehler Geburtsdatum
|
||||
* 5: Fehler Postleitzahl
|
||||
* 6: Fehler Vorname
|
||||
* 7: Fehler Nachname
|
||||
* 8: Fehler Semester
|
||||
* 9: Fehler Matrikelnummer
|
||||
*/
|
||||
|
||||
global $fehler;
|
||||
|
||||
if(mb_strlen($parameter->Postleitzahl) > 10)
|
||||
{
|
||||
$fehler = '5';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($parameter->Vorname) > 255)
|
||||
{
|
||||
$fehler = '6';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($parameter->Name) > 255)
|
||||
{
|
||||
$fehler = '7';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mb_strlen($parameter->Matrikelnummer) >15 || $parameter->Matrikelnummer == '')
|
||||
{
|
||||
$fehler = '9';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -154,8 +154,10 @@ $berechtigungen = array(
|
||||
array('lehre/reihungstest','Reihungstestverwaltung'),
|
||||
array('lehre/reihungstestOeffentlich','Erlaubt das Veröffentlichen von Reihungstests (Sichtbarkeit für BewerberInnen)'),
|
||||
array('lehre/reihungstestOrt','Erlaubt die Zuteilung von Raeumen zu Reihungstests'),
|
||||
array('lehre/reihungstestAufsicht','RT-Aufsichtspersonen dürfen zB Tests freischalten, Personen hinzufügen, Antworten löschen'),
|
||||
array('lehre/reservierung','erweiterte Reservierung inkl. Lektorauswahl, Stg, Sem und Gruppe'),
|
||||
array('lehre/reservierung:begrenzt','normale Raumreservierung im CIS'),
|
||||
array('lehre/reservierungAdvanced','Unbegrenztes Einfügen von Reservierungen auch über bestehende'),
|
||||
array('lehre/studienordnung','Studienordnung'),
|
||||
array('lehre/studienordnungInaktiv','Studienordnung Inaktiv'),
|
||||
array('lehre/studienplan','Studienplan'),
|
||||
|
||||
+41
-1
@@ -2728,6 +2728,45 @@ if(!$result = @$db->db_query('SELECT lehrfach_oe_kurzbz FROM campus.vw_lehreinhe
|
||||
echo '<br>campus.vw_lehreinheit lehrfach_oe_kurzbz added, fachbereich_kurzbz removed';
|
||||
}
|
||||
|
||||
// Berechtigungen fuer web User auf testtool.tbl_kategorie
|
||||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_kategorie' AND table_schema='testtool' AND grantee='web' AND privilege_type='SELECT'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
|
||||
$qry = "GRANT SELECT, INSERT, UPDATE, DELETE ON testtool.tbl_kategorie TO web;";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Testtool Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Web User fuer testtool.tbl_kategorie berechtigt';
|
||||
}
|
||||
}
|
||||
|
||||
// Kategorisierung von Services
|
||||
if(!$result = @$db->db_query("SELECT * FROM public.tbl_servicekategorie LIMIT 1"))
|
||||
{
|
||||
$qry = "CREATE TABLE public.tbl_servicekategorie(
|
||||
servicekategorie_kurzbz varchar(32) NOT NULL,
|
||||
bezeichnung varchar(256),
|
||||
sort smallint
|
||||
);
|
||||
ALTER TABLE public.tbl_servicekategorie ADD CONSTRAINT pk_servicekategorie PRIMARY KEY (servicekategorie_kurzbz);
|
||||
GRANT SELECT ON public.tbl_servicekategorie TO vilesci;
|
||||
GRANT SELECT ON public.tbl_servicekategorie TO web;
|
||||
ALTER TABLE public.tbl_service ADD COLUMN servicekategorie_kurzbz varchar(32);
|
||||
ALTER TABLE public.tbl_service ADD CONSTRAINT fk_service_servicekategorie FOREIGN KEY (servicekategorie_kurzbz) REFERENCES public.tbl_servicekategorie (servicekategorie_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
INSERT INTO public.tbl_servicekategorie(servicekategorie_kurzbz, bezeichnung, sort) VALUES('kritisch','Kritisch', 1);
|
||||
INSERT INTO public.tbl_servicekategorie(servicekategorie_kurzbz, bezeichnung, sort) VALUES('normal','für täglichen Betrieb nicht kritisch', 2);
|
||||
INSERT INTO public.tbl_servicekategorie(servicekategorie_kurzbz, bezeichnung, sort) VALUES('unkritisch','unkritisch für Lehrbetrieb', 3);
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Servicekategorie: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Servicekategorie zu Services hinzugefügt';
|
||||
}
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -2941,7 +2980,8 @@ $tabellen=array(
|
||||
"public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id","bezeichnung_mehrsprachig"),
|
||||
"public.tbl_status_grund" => array("statusgrund_id","status_kurzbz","aktiv","bezeichnung_mehrsprachig","beschreibung"),
|
||||
"public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"),
|
||||
"public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id","design_uid","betrieb_uid","operativ_uid"),
|
||||
"public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id","design_uid","betrieb_uid","operativ_uid","servicekategorie_kurzbz"),
|
||||
"public.tbl_servicekategorie" => array("servicekategorie_kurzbz", "bezeichnung","sort"),
|
||||
"public.tbl_sprache" => array("sprache","locale","flagge","index","content","bezeichnung"),
|
||||
"public.tbl_standort" => array("standort_id","adresse_id","kurzbz","bezeichnung","insertvon","insertamum","updatevon","updateamum","ext_id", "firma_id","code"),
|
||||
"public.tbl_statistik" => array("statistik_kurzbz","bezeichnung","url","gruppe","sql","content_id","insertamum","insertvon","updateamum","updatevon","berechtigung_kurzbz","publish","preferences"),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
|
||||
>
|
||||
|
||||
@@ -345,7 +345,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
|
||||
</text:sequence-decls>
|
||||
<!-- Wichtig für Mehrfachdruck (mehrere Studenten ausgewählt): Wenn ein Element (in diesem Fall Stempel und Unterschriftenblock) relativ zur SEITE ausgerichtet werden soll,
|
||||
<!-- Wichtig für Mehrfachdruck (mehrere Studenten ausgewählt): Wenn ein Element (in diesem Fall Stempel und Unterschriftenblock) relativ zur SEITE ausgerichtet werden soll,
|
||||
muss für jedes Dokument (jeder neue Durchlauf der Schleife) ein draw:frame-Tag definiert werden. Diese müssen ALLE VOR den ersten text:p-Elementen stehen.
|
||||
Deshalb wirde erst die Schleife für die draw:frames aufgerufen, dann folg tder Inhalt -->
|
||||
<xsl:if test="position()=1">
|
||||
@@ -471,8 +471,8 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<table:table-cell table:style-name="Tabelle1.D7" office:value-type="string">
|
||||
<text:p text:style-name="P9">-</text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
<xsl:apply-templates select="fussnote"/>
|
||||
</table:table-row>
|
||||
<xsl:apply-templates select="fussnote"/>
|
||||
</table:table>
|
||||
<text:p text:style-name="P26"/>
|
||||
<text:p text:style-name="P22">¹ 1 Semester period per week = 45 minutes</text:p>
|
||||
@@ -480,7 +480,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<text:p text:style-name="P22">
|
||||
<text:tab/>Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg)</text:p>
|
||||
<text:p text:style-name="P7"/>
|
||||
<xsl:if test="abschlusspruefung_typ">
|
||||
<xsl:if test="abschlusspruefung_typ and abschlusspruefung_typ!='lgabschluss'">
|
||||
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
|
||||
<table:table-column table:style-name="Tabelle2.A"/>
|
||||
<table:table-column table:style-name="Tabelle2.B"/>
|
||||
@@ -498,7 +498,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<xsl:if test="abschlusspruefung_typ='Diplom'" >
|
||||
<text:p text:style-name="P8">Master's Examination on <xsl:value-of select="abschlusspruefung_datum" /></text:p>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle2.B2" office:value-type="string">
|
||||
<text:p text:style-name="P8"><xsl:value-of select="abschlusspruefung_note_english" /></text:p>
|
||||
@@ -524,7 +524,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<xsl:choose>
|
||||
<xsl:when test="bisio_von">
|
||||
<text:p text:style-name="P12">International Semester Abroad: <xsl:value-of select="bisio_von"/>-<xsl:value-of select="bisio_bis"/>, at <xsl:value-of select="bisio_ort"/>, <xsl:value-of select="bisio_universitaet"/></text:p>
|
||||
<text:p text:style-name="P12">All credits earned during the International Semester Abroad (ISA) are fully credited for the
|
||||
<text:p text:style-name="P12">All credits earned during the International Semester Abroad (ISA) are fully credited for the
|
||||
<xsl:value-of select="../semester"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="../semester=1">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
|
||||
>
|
||||
|
||||
@@ -342,7 +342,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
|
||||
</text:sequence-decls>
|
||||
<!-- Wichtig für Mehrfachdruck (mehrere Studenten ausgewählt): Wenn ein Element (in diesem Fall Stempel und Unterschriftenblock) relativ zur SEITE ausgerichtet werden soll,
|
||||
<!-- Wichtig für Mehrfachdruck (mehrere Studenten ausgewählt): Wenn ein Element (in diesem Fall Stempel und Unterschriftenblock) relativ zur SEITE ausgerichtet werden soll,
|
||||
muss für jedes Dokument (jeder neue Durchlauf der Schleife) ein draw:frame-Tag definiert werden. Diese müssen ALLE VOR den ersten text:p-Elementen stehen.
|
||||
Deshalb wirde erst die Schleife für die draw:frames aufgerufen, dann folg tder Inhalt -->
|
||||
<xsl:if test="position()=1">
|
||||
@@ -454,15 +454,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<table:table-cell table:style-name="Tabelle1.D7" office:value-type="string">
|
||||
<text:p text:style-name="P9">-</text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
<xsl:apply-templates select="fussnote"/>
|
||||
</table:table-row>
|
||||
<xsl:apply-templates select="fussnote"/>
|
||||
</table:table>
|
||||
<text:p text:style-name="P26"/>
|
||||
<text:p text:style-name="P22">Notenstufen:<text:tab/>Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), Nicht genügend (5), mit Erfolg teilgenommen (met), nicht teilgenommen (nt), teilgenommen(tg),</text:p>
|
||||
<text:p text:style-name="P22">
|
||||
<text:tab/>angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea)</text:p>
|
||||
<text:p text:style-name="P7"/>
|
||||
<xsl:if test="abschlusspruefung_typ">
|
||||
<xsl:if test="abschlusspruefung_typ and abschlusspruefung_typ!='lgabschluss'">
|
||||
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
|
||||
<table:table-column table:style-name="Tabelle2.A"/>
|
||||
<table:table-column table:style-name="Tabelle2.B"/>
|
||||
@@ -480,7 +480,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<xsl:if test="abschlusspruefung_typ='Diplom'" >
|
||||
<text:p text:style-name="P8">Masterprüfung vom <xsl:value-of select="abschlusspruefung_datum" /></text:p>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle2.B2" office:value-type="string">
|
||||
<text:p text:style-name="P8"><xsl:value-of select="abschlusspruefung_note" /></text:p>
|
||||
|
||||
@@ -1104,7 +1104,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
</style:style>
|
||||
<style:style style:name="P55" style:family="paragraph" style:parent-style-name="Heading_20_4" style:master-page-name="Standard">
|
||||
<style:text-properties style:use-window-font-color="true"/>
|
||||
</style:style>
|
||||
</style:style>
|
||||
<style:style style:name="P56" style:family="paragraph" style:parent-style-name="Heading_20_4" style:master-page-name="Convert_20_1">
|
||||
<style:paragraph-properties style:page-number="auto"/>
|
||||
<style:text-properties style:use-window-font-color="true" fo:language="en" fo:country="US"/>
|
||||
@@ -1282,7 +1282,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
</office:document-content>
|
||||
</xsl:template>
|
||||
<xsl:template match="supplement">
|
||||
|
||||
|
||||
<text:sequence-decls xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
|
||||
@@ -2383,15 +2383,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<text:p text:style-name="P25"><text:span text:style-name="T14">Neben den ordentlichen Studien, die oben beschrieben wurden, gibt es auch außerordentliche Studien, die an Universitäten entweder ein Universitätslehrgang oder der Besuch einzelner Lehrveranstaltungen, im Fachhochschulbereich ein Lehrgang zur Weiterbildung oder der Besuch einzelner Lehrveranstaltungen und an Pädagogischen Hochschulen ein Hochschullehrgang sein können.</text:span></text:p>
|
||||
<text:p text:style-name="P24"/>
|
||||
<text:p text:style-name="P41">Bachelorstudium</text:p>
|
||||
<text:p text:style-name="P24">Die Zulassung zu einem Bachelorstudium erfolgt auf der Grundlage eines österreichischen oder gleichwertigen ausländischen Reifezeugnisses, eines Zeugnisses über die Studienberechtigungsprüfung oder eines Zeugnisses über die Berufsreifeprüfung, in künstlerischen Studien auf der Grundlage einer Zulassungsprüfung. Die Zulassung zu einem Fachhochschul-Bachelorstudiengang kann auch auf der Grundlage einer einschlägigen beruflichen Qualifikation erfolgen. In einigen Bachelorstudien an Universitäten, in den meisten Fachhochschul-Bachelorstudiengängen und in Bachelorstudien an Pädagogischen Hochschulen findet ein Auswahlverfahren statt.</text:p>
|
||||
<text:p text:style-name="P24">Die Zulassung zu einem Bachelorstudium erfolgt auf der Grundlage eines österreichischen oder gleichwertigen ausländischen Reifezeugnisses, eines Zeugnisses über die Studienberechtigungsprüfung oder eines Zeugnisses über die Berufsreifeprüfung, in künstlerischen Studien auf der Grundlage einer Zulassungsprüfung. Die Zulassung zu einem Fachhochschul-Bachelorstudiengang kann auch auf der Grundlage einer einschlägigen beruflichen Qualifikation erfolgen. In einigen Bachelorstudien an Universitäten, in den meisten Fachhochschul-Bachelorstudiengängen und in Bachelorstudien an Pädagogischen Hochschulen findet ein Auswahlverfahren statt.</text:p>
|
||||
<text:p text:style-name="P24">Die Fächer/Module und ihre Inhalte sind im Curriculum festgelegt. In der Regel sind zwei Bachelorarbeiten im Rahmen von Lehrveranstaltungen abzufassen. Fachhochschul-Bachelorstudiengänge, Bachelorstudien an Pädagogischen Hochschulen und einige Bachelorstudien an Universitäten umfassen ein angeleitetes Praktikum. Das Studium kann mit einer Bachelorprüfung abgeschlossen werden.</text:p>
|
||||
<text:p text:style-name="P24"/>
|
||||
<text:p text:style-name="P41"><text:soft-page-break/>Masterstudium</text:p>
|
||||
<text:p text:style-name="P24">Die Zulassung zu einem Masterstudium erfolgt auf der Grundlage eines abgeschlossenen facheinschlägigen Bachelorstudiums oder gleichwertigen postsekundären Abschlusses. In einigen Studien findet ein Auswahlverfahren statt</text:p>
|
||||
<text:p text:style-name="P24">Die Zulassung zu einem Masterstudium erfolgt auf der Grundlage eines abgeschlossenen facheinschlägigen Bachelorstudiums oder gleichwertigen postsekundären Abschlusses. In einigen Studien findet ein Auswahlverfahren statt</text:p>
|
||||
<text:p text:style-name="P24">Die Fächer/Module und ihre Inhalte sind im Curriculum festgelegt. Ein Schwerpunkt des Studiums liegt auf der Erstellung der Masterarbeit. Das Studium wird mit einer Masterprüfung abgeschlossen. Die Zulassung zur Masterprüfung setzt die Approbation der Masterarbeit voraus.</text:p>
|
||||
<text:p text:style-name="P24"/>
|
||||
<text:p text:style-name="P41">Diplomstudium</text:p>
|
||||
<text:p text:style-name="P24">Die Zulassung zu einem Diplomstudium erfolgt auf der Grundlage eines österreichischen oder gleichwertigen ausländischen Reifezeugnisses, eines Zeugnisses über die Studienberechtigungsprüfung oder eines Zeugnisses über die Berufsreifeprüfung, in künstlerischen Studien auf der Grundlage einer Zulassungsprüfung. Die Zulassung zu einem Fachhochschul-Diplomstudiengang kann auch auf der Grundlage einer einschlägigen beruflichen Qualifikation erfolgen. In einigen Studien (z.B. Humanmedizin und Zahnmedizin sowie in Fachhochschul-Diplomstudiengängen) findet ein Auswahlverfahren statt.</text:p>
|
||||
<text:p text:style-name="P24">Die Zulassung zu einem Diplomstudium erfolgt auf der Grundlage eines österreichischen oder gleichwertigen ausländischen Reifezeugnisses, eines Zeugnisses über die Studienberechtigungsprüfung oder eines Zeugnisses über die Berufsreifeprüfung, in künstlerischen Studien auf der Grundlage einer Zulassungsprüfung. Die Zulassung zu einem Fachhochschul-Diplomstudiengang kann auch auf der Grundlage einer einschlägigen beruflichen Qualifikation erfolgen. In einigen Studien (z.B. Humanmedizin und Zahnmedizin sowie in Fachhochschul-Diplomstudiengängen) findet ein Auswahlverfahren statt.</text:p>
|
||||
<text:p text:style-name="P24">Das Studium kann in Studienabschnitte unterteilt sein. Die Dauer jedes Studienabschnitts, die Fächer und ihre Inhalte sind im Curriculum festgelegt. Sie gliedern sich in Pflichtfächer und Wahlfächer. Jeder Studienabschnitt wird mit einer Diplomprüfung abgeschlossen. Fachhochschul-Diplomstudiengänge und einige Diplomstudien an Universitäten umfassen ein angeleitetes Praktikum. Die Zulassung zur letzten Diplomprüfung setzt die Approbation der Diplomarbeit voraus.</text:p>
|
||||
<text:p text:style-name="P24"/>
|
||||
<text:p text:style-name="P24"/>
|
||||
@@ -2569,13 +2569,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<text:p text:style-name="P53">The <text:span text:style-name="T14">new system</text:span> is based on the distinction between undergraduate and graduate studies. Upon completion of an undergraduate programme (<text:span text:style-name="T15">Bachelorstudium</text:span> at universities and university colleges of education or, respectively, <text:span text:style-name="T15">Fachhochschul-Bachelorstudiengang</text:span> at universities of applied sciences, comprising 180 to 240 ECTS credits), a bachelor’s degree (designation: "Bachelor of/in ..." ) is awarded. Upon completion of a graduate program (<text:span text:style-name="T15">Masterstudium</text:span> at universities and university colleges of education or, respectively, <text:span text:style-name="T15">Fachhochschul-Masterstudiengang</text:span> at universities of applied sciences, comprising 60 to 120 ECTS credits), a master’s degree (designation: "Master of/in ..." ) is awarded. In the fields of engineering, the designation of the master’s degree can also be "Diplom-Ingenieur/in".</text:p>
|
||||
</text:list-item>
|
||||
<text:list-item>
|
||||
<text:p text:style-name="P53">Under the auspices of the <text:span text:style-name="T14">older system</text:span> of diploma degree programmes (<text:span text:style-name="T15">Diplomstudien</text:span>), the first degree awarded is the diploma degree (<text:span text:style-name="T15">Diplomgrad</text:span>). An Austrian higher secondary school leaving certificate or its equivalent is the general qualification necessary for enrolling in a diploma degree programme; conclusion of a diploma degree programme entitles degree holders to enrol in doctoral programmes. A diploma degree (<text:span text:style-name="T15">Diplomgrad</text:span>) is awarded by Austrian universities after a course of study consisting of 240 to 360 ECTS credits. Full degree titles are gender specific designations: <text:span text:style-name="T15">Magister</text:span> for men; <text:span text:style-name="T15">Magistra</text:span> for women. Degree titles also include a general description of the field of study in which they were obtained, e.g. <text:span text:style-name="T15">Magister philosophiae</text:span>. In the fields of engineering, the degree titles are <text:span text:style-name="T15">Diplom-Ingenieur/in</text:span>.
|
||||
<text:p text:style-name="P53">Under the auspices of the <text:span text:style-name="T14">older system</text:span> of diploma degree programmes (<text:span text:style-name="T15">Diplomstudien</text:span>), the first degree awarded is the diploma degree (<text:span text:style-name="T15">Diplomgrad</text:span>). An Austrian higher secondary school leaving certificate or its equivalent is the general qualification necessary for enrolling in a diploma degree programme; conclusion of a diploma degree programme entitles degree holders to enrol in doctoral programmes. A diploma degree (<text:span text:style-name="T15">Diplomgrad</text:span>) is awarded by Austrian universities after a course of study consisting of 240 to 360 ECTS credits. Full degree titles are gender specific designations: <text:span text:style-name="T15">Magister</text:span> for men; <text:span text:style-name="T15">Magistra</text:span> for women. Degree titles also include a general description of the field of study in which they were obtained, e.g. <text:span text:style-name="T15">Magister philosophiae</text:span>. In the fields of engineering, the degree titles are <text:span text:style-name="T15">Diplom-Ingenieur/in</text:span>.
|
||||
Degrees awarded in medicine and dentistry are exceptions to the above. The first degrees awarded after the completion of these degree programmes consisting of 360 ECTS credits are <text:span text:style-name="T15">Doctor medicinae universae</text:span> and <text:span text:style-name="T15">Doctor medicinae dentalis</text:span>, respectively.</text:p>
|
||||
<text:p text:style-name="P53">Graduates of university of applied sciences programmes that consist of 240 to 300 ECTS credits are awarded, analogous to university studies, a university of applied science diploma degree (<text:span text:style-name="T15">Fachhochschul-Diplomgrad</text:span>) contingent upon <text:soft-page-break/>discipline: either a <text:span text:style-name="T15">Diplom-Ingenieur/in (FH)</text:span> for fields of engineering or <text:span text:style-name="T15">Magister/Magistra (FH)</text:span> in other fields of study.</text:p>
|
||||
</text:list-item>
|
||||
</text:list>
|
||||
<text:p text:style-name="P17"/>
|
||||
<text:p text:style-name="P17">The study programmes for teachers’ qualifications are offered jointly between universities and university colleges of education.</text:p>
|
||||
<text:p text:style-name="P17">The study programmes for teachers’ qualifications are offered jointly between universities and university colleges of education.</text:p>
|
||||
<text:p text:style-name="P17"/>
|
||||
<text:p text:style-name="P17">Recipients of the diploma degrees from the old system or master’s degrees from the new system (including the ones awarded in both cases by the universities of applied sciences) are entitled to enrol in doctoral programmes (<text:span text:style-name="T15">Doktoratsstudium</text:span>) at universities. A doctoral degree with the designation either <text:span text:style-name="T15">"Doktor/in"</text:span> or "Doctor of Philosophy" (PhD) is awarded upon completion of a doctoral programme with a minimum duration of three years.</text:p>
|
||||
<text:p text:style-name="P17"/>
|
||||
@@ -2674,8 +2674,8 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
</table:table-row>
|
||||
</table:table>
|
||||
<text:p text:style-name="P17"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<text:p text:style-name="P75">Grades for comprehensive examinations, i.e. examinations covering materials from various subjects:</text:p>
|
||||
<table:table table:name="Table15" table:style-name="Table15">
|
||||
<table:table-column table:style-name="Table15.B" />
|
||||
@@ -2703,13 +2703,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<text:p text:style-name="P75">Source:</text:p>
|
||||
<text:p text:style-name="P75">Federal Ministry of Science, Research and Economy, Unit VI/7</text:p>
|
||||
<!-- <text:p text:style-name="P75">Unit VI/7</text:p>-->
|
||||
|
||||
|
||||
<text:p text:style-name="P48">
|
||||
<draw:frame xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" draw:style-name="fr2" draw:name="graphics3" text:anchor-type="paragraph" svg:width="17cm" svg:height="24.042cm" draw:z-index="14" >
|
||||
<draw:image xlink:href="Pictures/100000000000092300000CECE56EC0B3.tif" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
|
||||
</draw:frame>
|
||||
</text:p>
|
||||
|
||||
|
||||
|
||||
<text:p><text:span text:style-name="T12">TRANSCRIPT OF RECORDS</text:span></text:p>
|
||||
|
||||
@@ -2793,7 +2793,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
<text:soft-page-break/>
|
||||
</text:p>
|
||||
<text:p text:style-name="P22"/>
|
||||
<xsl:if test="abschlusspruefungsdatum != ''">
|
||||
<xsl:if test="abschlusspruefungsdatum != '' and pruefungstyp_kurzbz!='lgabschluss'">
|
||||
<table:table table:name="Table16" table:style-name="Table16">
|
||||
<table:table-column table:style-name="Table16.A" table:number-columns-repeated="2" />
|
||||
<table:table-row>
|
||||
@@ -2943,4 +2943,3 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
|
||||
+108
-50
@@ -103,12 +103,18 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<style:style style:name="Tabelle1.A1" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A1_2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.G1" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding-left="0.07cm" fo:padding-right="0.07cm" fo:padding-top="0.05cm" fo:padding-bottom="0.05cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A2_2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding-left="0.07cm" fo:padding-right="0.07cm" fo:padding-top="0.05cm" fo:padding-bottom="0.05cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.G2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding-left="0.07cm" fo:padding-right="0.07cm" fo:padding-top="0.05cm" fo:padding-bottom="0.05cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
@@ -393,8 +399,16 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<table:table-column table:style-name="Tabelle1.C"/>
|
||||
<table:table-column table:style-name="Tabelle1.D"/>
|
||||
<table:table-column table:style-name="Tabelle1.E"/>
|
||||
<table:table-column table:style-name="Tabelle1.F"/>
|
||||
<table:table-column table:style-name="Tabelle1.G"/>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, werden die Spalten "Satz" und "Brutto" nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-column table:style-name="Tabelle1.F"/>
|
||||
<table:table-column table:style-name="Tabelle1.G"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<table:table-row>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P12">ID</text:p>
|
||||
@@ -409,15 +423,34 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<text:p text:style-name="P10">Gruppe<text:span text:style-name="T2">(n)</text:span>
|
||||
</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P13">Std.</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Satz</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Brutto</text:p>
|
||||
</table:table-cell>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Satz" nicht angezeigt
|
||||
Deshalb braucht die Spalte "Std" einen border auf der rechten Seite (deshalb anderer style_name) -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<table:table-cell table:style-name="Tabelle1.A1_2" office:value-type="string">
|
||||
<text:p text:style-name="P13">Std.</text:p>
|
||||
</table:table-cell>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P13">Std.</text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, werden die Spalten "Satz" und "Brutto" nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<!--<text:p text:style-name="P10">Satz</text:p>-->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Satz</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Brutto</text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-row>
|
||||
|
||||
<xsl:apply-templates select="lehreinheit"/>
|
||||
@@ -435,23 +468,35 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P11">Summe:</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P11"><xsl:value-of select="gesamtstunden" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P9"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<text:p text:style-name="P11">€ 0,00</text:p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<text:p text:style-name="P11">€ <xsl:value-of select="gesamtbetrag" /></text:p>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Satz" nicht angezeigt
|
||||
Deshalb braucht die Spalte "Summe" einen border auf der rechten Seite (deshalb anderer style_name) -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<table:table-cell table:style-name="Tabelle1.A2_2" office:value-type="string">
|
||||
<text:p text:style-name="P11"><xsl:value-of select="gesamtstunden" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P11"><xsl:value-of select="gesamtstunden" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
</table:table-cell>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte Bruttosumme nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<!--<text:p text:style-name="P2">0.00</text:p>-->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P9"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<text:p text:style-name="P11">€ <xsl:value-of select="gesamtbetrag" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-row>
|
||||
</table:table>
|
||||
<text:p text:style-name="P19"/>
|
||||
@@ -518,31 +563,44 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<xsl:apply-templates select="gruppen_getrennt"/>
|
||||
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird am Lehrauftrag bei Stundensatz und Brutto 0 ausgegeben-->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<text:p text:style-name="P2">0.00</text:p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Satz" nicht angezeigt
|
||||
Deshalb braucht die Spalte "Std" einen border auf der rechten Seite (deshalb anderer style_name) -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<table:table-cell table:style-name="Tabelle1.A2_2" office:value-type="string">
|
||||
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Satz" nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<!--<text:p text:style-name="P2">0.00</text:p>-->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P2"><xsl:value-of select="satz" /></text:p>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird am Lehrauftrag bei Stundensatz und Brutto 0 ausgegeben-->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<text:p text:style-name="P3">€ 0,00</text:p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Brutto" nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<!--<text:p text:style-name="P3">€ 0,00</text:p>-->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<text:p text:style-name="P3">€ <xsl:value-of select="brutto" /></text:p>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-cell>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-row>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
@@ -103,12 +103,18 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<style:style style:name="Tabelle1.A1" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A1_2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.G1" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding-left="0.07cm" fo:padding-right="0.07cm" fo:padding-top="0.05cm" fo:padding-bottom="0.05cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.A2_2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding-left="0.07cm" fo:padding-right="0.07cm" fo:padding-top="0.05cm" fo:padding-bottom="0.05cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="Tabelle1.G2" style:family="table-cell">
|
||||
<style:table-cell-properties fo:padding-left="0.07cm" fo:padding-right="0.07cm" fo:padding-top="0.05cm" fo:padding-bottom="0.05cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
|
||||
</style:style>
|
||||
@@ -386,8 +392,16 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<table:table-column table:style-name="Tabelle1.C"/>
|
||||
<table:table-column table:style-name="Tabelle1.D"/>
|
||||
<table:table-column table:style-name="Tabelle1.E"/>
|
||||
<table:table-column table:style-name="Tabelle1.F"/>
|
||||
<table:table-column table:style-name="Tabelle1.G"/>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, werden die Spalten "Satz" und "Brutto" nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-column table:style-name="Tabelle1.F"/>
|
||||
<table:table-column table:style-name="Tabelle1.G"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<table:table-row>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P12">ID</text:p>
|
||||
@@ -402,15 +416,34 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<text:p text:style-name="P10">Gruppe<text:span text:style-name="T2">(n)</text:span>
|
||||
</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P13">Std.</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Satz</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Brutto</text:p>
|
||||
</table:table-cell>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Satz" nicht angezeigt
|
||||
Deshalb braucht die Spalte "Std" einen border auf der rechten Seite (deshalb anderer style_name) -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<table:table-cell table:style-name="Tabelle1.A1_2" office:value-type="string">
|
||||
<text:p text:style-name="P13">Std.</text:p>
|
||||
</table:table-cell>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P13">Std.</text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, werden die Spalten "Satz" und "Brutto" nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<!--<text:p text:style-name="P10">Satz</text:p>-->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Satz</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G1" office:value-type="string">
|
||||
<text:p text:style-name="P10">Brutto</text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-row>
|
||||
|
||||
<xsl:apply-templates select="lehreinheit"/>
|
||||
@@ -428,22 +461,35 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P11">Summe:</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P11"><xsl:value-of select="gesamtstunden" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P9"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<text:p text:style-name="P11">€ 0,00</text:p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Satz" nicht angezeigt
|
||||
Deshalb braucht die Spalte "Summe" einen border auf der rechten Seite (deshalb anderer style_name) -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<table:table-cell table:style-name="Tabelle1.A2_2" office:value-type="string">
|
||||
<text:p text:style-name="P11"><xsl:value-of select="gesamtstunden" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P11"><xsl:value-of select="gesamtstunden" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte Bruttosumme nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="mitarbeiter/inkludierte_lehre != ''">
|
||||
<!--<text:p text:style-name="P2">0.00</text:p>-->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P9"/>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<text:p text:style-name="P11">€ <xsl:value-of select="gesamtbetrag" /></text:p>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-cell>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-row>
|
||||
</table:table>
|
||||
<text:p text:style-name="P19"/>
|
||||
@@ -510,31 +556,44 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
||||
<xsl:apply-templates select="gruppen_getrennt"/>
|
||||
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird am Lehrauftrag bei Stundensatz und Brutto 0 ausgegeben-->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<text:p text:style-name="P2">0.00</text:p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Satz" nicht angezeigt
|
||||
Deshalb braucht die Spalte "Std" einen border auf der rechten Seite (deshalb anderer style_name) -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<table:table-cell table:style-name="Tabelle1.A2_2" office:value-type="string">
|
||||
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Satz" nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<!--<text:p text:style-name="P2">0.00</text:p>-->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
|
||||
<text:p text:style-name="P2"><xsl:value-of select="satz" /></text:p>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird am Lehrauftrag bei Stundensatz und Brutto 0 ausgegeben-->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<text:p text:style-name="P3">€ 0,00</text:p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird die Spalte "Brutto" nicht angezeigt -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="../mitarbeiter/inkludierte_lehre != ''">
|
||||
<!--<text:p text:style-name="P3">€ 0,00</text:p>-->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
|
||||
<text:p text:style-name="P3">€ <xsl:value-of select="brutto" /></text:p>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-cell>
|
||||
</table:table-cell>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</table:table-row>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ $datum_obj = new datum();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('lehre/reservierung', null, 'sui'))
|
||||
if(!$rechte->isBerechtigt('lehre/reservierungAdvanced', null, 'sui'))
|
||||
die('<span class="error">Sie haben keine Berechtigung für diese Seite</span>');
|
||||
|
||||
$stgid=(isset($_REQUEST['stgid'])?$_REQUEST['stgid']:0);
|
||||
@@ -247,7 +247,7 @@ echo '
|
||||
<hr>
|
||||
</form>';
|
||||
|
||||
if($rechte->isBerechtigt('lehre/reservierung', null, 'sui'))
|
||||
if($rechte->isBerechtigt('lehre/reservierungAdvanced', null, 'sui'))
|
||||
{
|
||||
if ($type=="save")
|
||||
{
|
||||
|
||||
@@ -41,14 +41,14 @@ echo '
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">';
|
||||
|
||||
include('../../include/meta/jquery.php');
|
||||
include('../../include/meta/jquery-tablesorter.php');
|
||||
|
||||
echo ' <script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
|
||||
<script language="Javascript">
|
||||
$(function() {
|
||||
$("a.ui-widget-content").draggable({revert: true, helper: \'clone\'});
|
||||
@@ -66,7 +66,6 @@ echo '
|
||||
window.location.href="'.$_SERVER['PHP_SELF'].'?action=updateparent&kurzbz="+kurzbz+"&parent_kurzbz="+parent_kurzbz;
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
@@ -95,7 +94,9 @@ echo '
|
||||
<h2>Organisationseinheiten</h2>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td><span style="font-size: small">Zuordnung kann per Drag&Drop geändert werden!</font></td>
|
||||
<td><span style="font-size: small">Zuordnung kann per Drag&Drop geändert werden!</span><br>
|
||||
€...Freigabegrenze hinterlegt (siehe Tooltip)<br>
|
||||
<span style="color: green">L</span>...Leitung hinterlegt (siehe Tooltip)</td>
|
||||
<td align="right"><a href="'.$_SERVER['PHP_SELF'].'?action=neu">Neue Organisationseinheit anlegen</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -368,12 +369,43 @@ function display($arr)
|
||||
echo '<br>';
|
||||
}
|
||||
//echo '<span class="ui-widget-content" style=" padding: 0px; margin:0px;'.$aktivstyle.'" >';
|
||||
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=edit&kurzbz='.$obj->oe_kurzbz.'" style="'.$aktivstyle.'" class="Item ui-widget-content" id="'.$obj->oe_kurzbz.'">';
|
||||
echo $obj->organisationseinheittyp_kurzbz.' - ';
|
||||
if($obj->organisationseinheittyp_kurzbz=='Institut')
|
||||
echo $obj->oe_kurzbz;
|
||||
{
|
||||
$bezeichnung = substr($obj->organisationseinheittyp_kurzbz, 0, 1).substr($obj->organisationseinheittyp_kurzbz, -1).' - '.$obj->oe_kurzbz;
|
||||
}
|
||||
else
|
||||
echo $obj->bezeichnung;
|
||||
{
|
||||
$bezeichnung = substr($obj->organisationseinheittyp_kurzbz, 0, 1).substr($obj->organisationseinheittyp_kurzbz, -1).' - '.$obj->bezeichnung;
|
||||
}
|
||||
$leitung = array();
|
||||
$bnfunktion = new benutzerfunktion();
|
||||
$bnfunktion->getBenutzerFunktionen('Leitung', $obj->oe_kurzbz);
|
||||
foreach ($bnfunktion->result AS $funktion)
|
||||
{
|
||||
$mitarbeiter = new mitarbeiter($funktion->uid);
|
||||
$leitung[] = $mitarbeiter->vorname.' '.$mitarbeiter->nachname;
|
||||
}
|
||||
$leitung = array_unique($leitung);
|
||||
$title = $obj->organisationseinheittyp_kurzbz.' - '.$obj->bezeichnung;
|
||||
if (count($leitung) > 0)
|
||||
{
|
||||
$bezeichnung .= ' <span style="color: green">L</span>';
|
||||
$title .= "\nLeitung(en): ".implode(',',$leitung); // Keep double-quotes to display linebreak in title-attribute
|
||||
}
|
||||
if ($obj->freigabegrenze != '')
|
||||
{
|
||||
$bezeichnung .= ' <span title="Freigabegrenze €'.$obj->freigabegrenze.'" style="color: black">€</span>';
|
||||
$title .= "\nFreigabegrenze: €".$obj->freigabegrenze; // Keep double-quotes to display linebreak in title-attribute
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=edit&kurzbz='.$obj->oe_kurzbz.'"
|
||||
style="'.$aktivstyle.'"
|
||||
class="Item ui-widget-content"
|
||||
title="'.$title.'"
|
||||
id="'.$obj->oe_kurzbz.'">';
|
||||
echo $bezeichnung;
|
||||
echo '</a>';
|
||||
//echo '</span>';
|
||||
if(is_array($val) && count($val)>0)
|
||||
|
||||
@@ -98,6 +98,7 @@ $datum_obj = new datum();
|
||||
$betrieb_uid = (isset($_POST['betrieb_uid'])?$_POST['betrieb_uid']:'');
|
||||
$operativ_uid = (isset($_POST['operativ_uid'])?$_POST['operativ_uid']:'');
|
||||
$ext_id = (isset($_POST['ext_id'])?$_POST['ext_id']:die('ext_id fehlt'));
|
||||
$servicekategorie_kurzbz = (isset($_POST['servicekategorie_kurzbz'])?$_POST['servicekategorie_kurzbz']:'');
|
||||
$new = (isset($_POST['new'])?$_POST['new']:'true');
|
||||
if($new=='true')
|
||||
{
|
||||
@@ -116,6 +117,7 @@ $datum_obj = new datum();
|
||||
$service->ext_id = $ext_id;
|
||||
$service->oe_kurzbz = $oe_kurzbz;
|
||||
$service->content_id = $content_id;
|
||||
$service->servicekategorie_kurzbz = $servicekategorie_kurzbz;
|
||||
|
||||
if ($design_uid != '' || $betrieb_uid != '' || $operativ_uid != '')
|
||||
{
|
||||
@@ -182,6 +184,8 @@ $datum_obj = new datum();
|
||||
break;
|
||||
}
|
||||
|
||||
$servicekategorie_arr = $service->getKategorieArray();
|
||||
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'?action=save" method="POST">';
|
||||
echo '<input type="hidden" name="new" value="'.htmlspecialchars($new).'">';
|
||||
echo '<input type="hidden" name="service_id" value="'.htmlspecialchars($service->service_id).'">';
|
||||
@@ -213,6 +217,23 @@ $datum_obj = new datum();
|
||||
echo ' <td>Beschreibung</td>';
|
||||
echo ' <td><textarea name="beschreibung" cols="60" rows="5">'.htmlspecialchars($service->beschreibung).'</textarea></td>';
|
||||
echo '</tr>';
|
||||
echo '<tr>';
|
||||
echo ' <td>Kategorie </td>';
|
||||
echo ' <td>';
|
||||
echo '<SELECT name="servicekategorie_kurzbz">';
|
||||
echo '<OPTION value="">-- keine Auswahl --</OPTION>';
|
||||
foreach($servicekategorie_arr as $key=>$value)
|
||||
{
|
||||
if($key==$service->servicekategorie_kurzbz)
|
||||
$selected='selected';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
echo '<OPTION value="'.$key.'" '.$selected.'>'.$value.'</OPTION>';
|
||||
}
|
||||
|
||||
echo '</SELECT>';
|
||||
echo ' </td>';
|
||||
echo '<tr valign="top">';
|
||||
echo ' <td>Design</td>';
|
||||
echo ' <td><input type="text" id="design_uid" name="design_uid" class="benutzer_uid" size="32" maxlength="32" value="'.htmlspecialchars($service->design_uid).'"></td>';
|
||||
|
||||
@@ -107,6 +107,8 @@ echo '</SELECT>
|
||||
<input type="submit" value="Filtern" />
|
||||
</form>';
|
||||
|
||||
$servicekategorie_arr = $service->getKategorieArray();
|
||||
|
||||
if($oe_kurzbz!='')
|
||||
{
|
||||
if(!$service->getServicesOrganisationseinheit($oe_kurzbz))
|
||||
@@ -124,8 +126,7 @@ echo '<table class="tablesorter" id="myTable">
|
||||
<th>Bezeichnung</th>
|
||||
<th>Beschreibung</th>
|
||||
<th>Organisationseinheit</th>
|
||||
<th>Content_ID</th>
|
||||
<th>Ext_ID</th>
|
||||
<th>Kategorie</th>
|
||||
<th>Design</th>
|
||||
<th>Betrieb</th>
|
||||
<th>Operativ</th>
|
||||
@@ -141,8 +142,8 @@ foreach($service->result as $row)
|
||||
echo '<td>',$row->bezeichnung,'</td>';
|
||||
echo '<td>',$row->beschreibung,'</td>';
|
||||
echo '<td>',$row->oe_kurzbz,'</td>';
|
||||
echo '<td>',$row->content_id,'</td>';
|
||||
echo '<td>',$row->ext_id,'</td>';
|
||||
$title = (isset($servicekategorie_arr[$row->servicekategorie_kurzbz])?$servicekategorie_arr[$row->servicekategorie_kurzbz]:'');
|
||||
echo '<td><span title="'.$service->convert_html_chars($title).'">',$row->servicekategorie_kurzbz,'</span></td>';
|
||||
echo '<td>',$row->design_uid,'</td>';
|
||||
echo '<td>',$row->betrieb_uid,'</td>';
|
||||
echo '<td>',$row->operativ_uid,'</td>';
|
||||
|
||||
Reference in New Issue
Block a user