diff --git a/application/controllers/person/Gradelist.php b/application/controllers/person/Gradelist.php
new file mode 100644
index 000000000..bf179ad35
--- /dev/null
+++ b/application/controllers/person/Gradelist.php
@@ -0,0 +1,349 @@
+ array('student:r', 'student/noten:r')
+ )
+ );
+
+ // Loads models
+ $this->load->model('person/person_model', 'PersonModel');
+ $this->load->model('organisation/studiengang_model', 'StudiengangModel');
+ $this->load->model('crm/student_model', 'StudentModel');
+ $this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
+ $this->load->model('education/zeugnisnote_model', 'ZeugnisnoteModel');
+ $this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel');
+ $this->load->model('codex/note_model', 'NoteModel');
+
+ $this->loadPhrases(
+ array(
+ 'global',
+ 'person',
+ 'lehre',
+ 'ui'
+ )
+ );
+
+ $result_noten = $this->NoteModel->load();
+ foreach ($result_noten->retval as $row)
+ {
+ $this->_grades[$row->note]['positiv'] = $row->positiv;
+ $this->_grades[$row->note]['anmerkung'] = $row->anmerkung;
+ $this->_grades[$row->note]['notenwert'] = $row->notenwert;
+ }
+ }
+
+ /**
+ * Print all Grades of a person
+ * @param $uid UID of the Person
+ */
+ public function index($uid = null)
+ {
+ if (is_null($uid))
+ $uid = getAuthUID();
+
+ // load student
+ $student = $this->StudentModel->load(array($uid));
+ if (!isSuccess($student) || !hasData($student))
+ {
+ echo "You have no Permission or User does not exists";
+ exit;
+ }
+
+ // Check if logged in User has permission to see grades of this person
+ $stg = $this->StudiengangModel->load($student->retval[0]->studiengang_kz);
+ if (!$this->hasPermission($uid, $stg->retval[0]->oe_kurzbz))
+ {
+ echo "You have no Permission or User does not exists";
+ exit;
+ }
+ $person = $this->PersonModel->getByUid($uid);
+
+ $courses = $this->loadCourseInformation($student->retval[0]->prestudent_id, $student->retval[0]->student_uid);
+
+ $data = array (
+ "user" => $uid,
+ "person" => $person->retval[0],
+ "courses" => $courses,
+ "grades" => $this->_grades
+ );
+
+ $this->load->view('person/gradelist/gradelist.php', $data);
+ }
+
+ /**
+ * Check if the Logged in User has permission to see the grades of this person
+ * @param $uid UID of the Person we want to see
+ * @param $oe_kurzbz Organisation Unit of the Person we want to see
+ * @return true if the logged in User is allowed to see the content, false if not
+ */
+ private function hasPermission($uid, $oe_kurzbz)
+ {
+ $loggedinUser = getAuthUID();
+ if($uid != $loggedinUser)
+ {
+ $this->load->library('PermissionLib');
+ if($this->permissionlib->isBerechtigt('student/noten','s',$oe_kurzbz))
+ {
+ return true;
+ }
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ /**
+ * Loads the Courses and Grades of the Student
+ *
+ * @param $prestudent_id of the Student
+ * @return array with the courses
+ */
+ private function loadCourseInformation($prestudent_id, $uid)
+ {
+ $this->load->library('StudienplanLib');
+
+ // Get status of Student
+ $result_status = $this->PrestudentstatusModel->getStatusByFilter($prestudent_id);
+
+ if (isError($result_status) || !hasData($result_status))
+ {
+ return error('No Status Found');
+ }
+
+ // Get Courses from studyplan for each semester of the student
+ foreach ($result_status->retval as $row_status)
+ {
+ if (in_array($row_status->status_kurzbz,
+ array('Student','Diplomand','Incoming','Abbrecher','Unterbrecher','Absolvent')))
+ {
+ // LVs fuer das Semester holen lt Studienplan
+ $lvtree = $this->studienplanlib->getLehrveranstaltungTree(
+ $row_status->studienplan_id,
+ $row_status->ausbildungssemester,
+ true
+ );
+ $courses['semester'][$row_status->studiensemester_kurzbz]['lvs'] = $lvtree;
+ $courses['semester'][$row_status->studiensemester_kurzbz]['lvs_nonstpl'] = array();
+
+ $result_stpl = $this->StudienplanModel->load($row_status->studienplan_id);
+ if(isSuccess($result_stpl) && hasData($result_stpl))
+ {
+ $stpl_bezeichnung = $result_stpl->retval[0]->bezeichnung;
+ }
+ else
+ $stpl_bezeichnung = 'unknown';
+
+ $courses['semester'][$row_status->studiensemester_kurzbz]['data'] = array(
+ 'status' => $row_status->status_kurzbz,
+ 'ausbildungssemester' => $row_status->ausbildungssemester,
+ 'studiensemester_kurzbz' => $row_status->studiensemester_kurzbz,
+ 'studienplan_id' => $row_status->studienplan_id,
+ 'studienplan_bezeichnung' => $stpl_bezeichnung,
+ );
+ }
+ }
+
+ // Load Grades and add to studyplan
+ $result_zeugnis = $this->ZeugnisnoteModel->loadWhere(array("student_uid" => $uid));
+
+ if (isSuccess($result_zeugnis) && hasData($result_zeugnis))
+ {
+ foreach ($courses['semester'] as $key=>$value)
+ {
+ $this->fillNotenPart(
+ $result_zeugnis,
+ $courses['semester'][$key]['lvs'],
+ $value['data']['studiensemester_kurzbz']
+ );
+ }
+ }
+
+ // Build Array of Courses that are not part of the studyplan
+ foreach ($result_zeugnis->retval as $row_noten)
+ {
+ if (!isset($row_noten->found))
+ {
+ $result_lv = $this->LehrveranstaltungModel->load($row_noten->lehrveranstaltung_id);
+ $courses['semester'][$row_noten->studiensemester_kurzbz]['lvs_nonstpl'][] = array(
+ 'lehrveranstaltung_id' => $row_noten->lehrveranstaltung_id,
+ 'lehrtyp_kurzbz' => $result_lv->retval[0]->lehrtyp_kurzbz,
+ 'pflicht' => false,
+ 'bezeichnung' => $result_lv->retval[0]->bezeichnung,
+ 'ects' => $result_lv->retval[0]->ects,
+ 'note' => $row_noten->note,
+ 'datum' => $row_noten->benotungsdatum
+ );
+ if(!isset($courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl']))
+ $courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] = 0;
+ $courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] += $result_lv->retval[0]->ects;
+ }
+ }
+
+ $sum_gradeweighted_overall = 0;
+ $sum_ectsweighted_overall = 0;
+ $sum_grades_overall = 0;
+ $num_grades_overall = 0;
+ $sum_ects_overall = 0;
+ $sum_ects_positiv_overall = 0;
+
+ // Calculate Sum and Average
+ foreach ($courses['semester'] as $stsem => $row_lvs)
+ {
+ $grades = $this->getGrades($row_lvs['lvs']);
+
+ $num_grades = 0;
+ $sum_ects = 0;
+ $sum_ects_positiv = 0;
+ $sum_grades = 0;
+ $notendurchschnitt = 0;
+ $sum_gradeweighted = 0;
+ $sum_ectsweighted = 0;
+
+ foreach ($grades as $row)
+ {
+ if ($this->_grades[$row['note']]['notenwert'] != '')
+ {
+ $num_grades++;
+ $sum_grades += $this->_grades[$row['note']]['notenwert'];
+
+ $sum_ectsweighted += $row['ects'];
+ $sum_gradeweighted += $row['ects'] * $this->_grades[$row['note']]['notenwert'];
+ }
+ $sum_ects += $row['ects'];
+ if ($this->_grades[$row['note']]['positiv'])
+ $sum_ects_positiv += $row['ects'];
+ }
+ if ($num_grades > 0)
+ $notendurchschnitt = $sum_grades / $num_grades;
+ else
+ $notendurchschnitt = 0;
+
+ if ($sum_ectsweighted > 0)
+ $notendurchschnittgewichtet = $sum_gradeweighted / $sum_ectsweighted;
+ else
+ $notendurchschnittgewichtet = 0;
+
+ $num_grades_overall += $num_grades;
+ $sum_grades_overall += $sum_grades;
+ $sum_gradeweighted_overall += $sum_gradeweighted;
+ $sum_ectsweighted_overall += $sum_ectsweighted;
+ $sum_ects_overall += $sum_ects;
+ $sum_ects_positiv_overall += $sum_ects_positiv;
+
+ $courses['semester'][$stsem]['data']['notendurchschnitt'] = number_format($notendurchschnitt, 2);
+ $courses['semester'][$stsem]['data']['notendurchschnittgewichtet'] = number_format($notendurchschnittgewichtet, 2);
+ $courses['semester'][$stsem]['data']['ectssumme'] = number_format($sum_ects,2);
+ $courses['semester'][$stsem]['data']['ectssumme_positiv'] = number_formaT($sum_ects_positiv,2);
+ }
+
+ if ($num_grades_overall > 0)
+ $notendurchschnitt = $sum_grades_overall / $num_grades_overall;
+ else
+ $notendurchschnitt = 0;
+
+ if ($sum_ectsweighted_overall > 0)
+ $notendurchschnittgewichtet = $sum_gradeweighted_overall / $sum_ectsweighted_overall;
+ else
+ $notendurchschnittgewichtet = 0;
+
+ $courses['overall'] = array(
+ 'notendurchschnitt' => number_format($notendurchschnitt, 2),
+ 'notendurchschnittgewichtet' => number_format($notendurchschnittgewichtet, 2),
+ 'ectssumme' => $sum_ects_overall,
+ 'ectssumme_positiv' => $sum_ects_positiv_overall
+ );
+ return $courses;
+ }
+
+ /**
+ * Combines the Studyplan Courses recursively with the Grades of the Student
+ * Grades that are found in the Studyplan are marked, the others are added to a separate list
+ * @param $noten reference to array of all grades.
+ * @param $courses reference to array of all courses.
+ * @param $studiensemester_kurzbz Studiensemester of the Course and Grades
+ */
+ private function fillNotenPart(&$noten, &$courses, $studiensemester_kurzbz)
+ {
+ foreach ($courses as $key => $value)
+ {
+ foreach ($noten->retval as $notenkey => $row_noten)
+ {
+ if ($row_noten->lehrveranstaltung_id == $value['lehrveranstaltung_id']
+ && $row_noten->studiensemester_kurzbz == $studiensemester_kurzbz)
+ {
+ $courses[$key]['note'] = $row_noten->note;
+ $courses[$key]['datum'] = $row_noten->benotungsdatum;
+ $noten->retval[$notenkey]->found = true;
+ }
+ if (isset($value['childs']))
+ $this->fillNotenPart($noten, $courses[$key]['childs'], $studiensemester_kurzbz);
+ }
+ }
+ }
+
+ /**
+ * Reads all the Courses recursivly and Returns an Array with the Grades and ECTS
+ * @param $courses array of courses
+ * @return array with grades and ects
+ */
+ public function getGrades($courses)
+ {
+ $grades = array();
+ foreach ($courses as $row)
+ {
+ if (isset($row['note']) && $row['note'] != '')
+ {
+ $grades[] = array(
+ 'note' => $row['note'],
+ 'ects' => $row['ects']
+ );
+ }
+
+ if ($row['childs'])
+ {
+ $childgrades = $this->getGrades($row['childs']);
+ $grades = array_merge($grades, $childgrades);
+ }
+ }
+ return $grades;
+ }
+
+ /**
+ * Helper Function to Display recursive Courses
+ * @param $course array if courses
+ * @param $depth integer defines the number parent elements
+ */
+ static function printRow($course, $depth)
+ {
+ $ci =& get_instance();
+ $ci->load->view('person/gradelist/course.php',
+ array(
+ 'course' => $course,
+ 'depth' => $depth
+ )
+ );
+
+ if (isset($course['childs']))
+ {
+ foreach ($course['childs'] as $row_course)
+ Gradelist::printRow($row_course, $depth + 1);
+ }
+ }
+}
diff --git a/application/libraries/StudienplanLib.php b/application/libraries/StudienplanLib.php
new file mode 100644
index 000000000..c40120721
--- /dev/null
+++ b/application/libraries/StudienplanLib.php
@@ -0,0 +1,72 @@
+ci =& get_instance();
+
+ // Loads model Organisationseinheit_model
+ $this->ci->load->model('organisation/Studienplan_model', 'StudienplanModel');
+ }
+
+ public function getLehrveranstaltungTree($studienplan_id, $semester, $studplan = null)
+ {
+ $tree = array();
+ $data = $this->ci->StudienplanModel->getStudienplanLehrveranstaltung($studienplan_id, $semester);
+ if(isSuccess($data) && hasData($data))
+ {
+ $this->lehrveranstaltungen = $data->retval;
+ foreach($this->lehrveranstaltungen as $row)
+ {
+ if (!is_null($studplan) && $row->export != $studplan)
+ continue;
+
+ if (is_null($row->studienplan_lehrveranstaltung_id_parent))
+ {
+ $treeitem = array(
+ 'lehrveranstaltung_id' => $row->lehrveranstaltung_id,
+ 'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz,
+ 'pflicht' => $row->pflicht,
+ 'bezeichnung' => $row->bezeichnung,
+ 'ects' => $row->ects
+ );
+ $childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id);
+ if(is_array($childs) && count($childs) > 0)
+ $treeitem['childs'] = $childs;
+ $tree[] = $treeitem;
+ }
+ }
+ }
+ return $tree;
+ }
+
+ private function getChildElements($studienplan_lehrveranstaltung_id)
+ {
+ $subtree = array();
+
+ foreach($this->lehrveranstaltungen as $row)
+ {
+ if($studienplan_lehrveranstaltung_id == $row->studienplan_lehrveranstaltung_id_parent)
+ {
+ $treeitem = array(
+ 'lehrveranstaltung_id' => $row->lehrveranstaltung_id,
+ 'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz,
+ 'pflicht' => $row->pflicht,
+ 'bezeichnung' => $row->bezeichnung,
+ 'ects' => $row->ects
+ );
+ $childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id);
+ if(is_array($childs))
+ $treeitem['childs'] = $childs;
+ $subtree[] = $treeitem;
+ }
+ }
+ return $subtree;
+ }
+}
diff --git a/application/models/accounting/Kostenstelle_model.php b/application/models/accounting/Kostenstelle_model.php
index f338b69d5..719d08835 100644
--- a/application/models/accounting/Kostenstelle_model.php
+++ b/application/models/accounting/Kostenstelle_model.php
@@ -13,12 +13,12 @@ class Kostenstelle_model extends DB_Model
}
/**
- * Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields
+ * Gets Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields
* Gets Kostenstellen of current Geschaeftsjahr if Geschaeftsjahr not specified
* @param $geschaeftsjahr
* @return array|null Kostenstellen or empty array if no geschaeftsjahr found
*/
- public function getActiveKostenstellenForGeschaeftsjahr($geschaeftsjahr = null)
+ public function getKostenstellenForGeschaeftsjahr($geschaeftsjahr = null)
{
$this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel');
@@ -47,12 +47,12 @@ class Kostenstelle_model extends DB_Model
}
/**
- * Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields, together with their oe,
+ * Gets Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields, together with their oe,
* hierarchally sorted, gets Kostenstellen of current Geschaeftsjahr if Geschaeftsjahr not specified
* @param null $geschaeftsjahr
* @return array|null
*/
- public function getActiveKostenstellenForGeschaeftsjahrWithOe($geschaeftsjahr = null)
+ public function getKostenstellenForGegitschaeftsjahrWithOe($geschaeftsjahr = null)
{
$this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel');
diff --git a/application/models/crm/Student_model.php b/application/models/crm/Student_model.php
index 0d03fd50f..532658208 100644
--- a/application/models/crm/Student_model.php
+++ b/application/models/crm/Student_model.php
@@ -14,13 +14,13 @@ class Student_model extends DB_Model
}
// ****
-// * Generiert die Matrikelnummer
-// * FORMAT: 0710254001
-// * 07 = Jahr
-// * 1/2/0 = WS/SS/incoming
-// * 0254 = Studiengangskennzahl vierstellig
-// * 001 = Laufende Nummer
-// ****
+ // * Generiert die Matrikelnummer
+ // * FORMAT: 0710254001
+ // * 07 = Jahr
+ // * 1/2/0 = WS/SS/incoming
+ // * 0254 = Studiengangskennzahl vierstellig
+ // * 001 = Laufende Nummer
+ // ****
public function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
{
$jahr = mb_substr($studiensemester_kurzbz, 4);
diff --git a/application/models/organisation/Studienplan_model.php b/application/models/organisation/Studienplan_model.php
index 5fe7ef44d..2c3b36c03 100644
--- a/application/models/organisation/Studienplan_model.php
+++ b/application/models/organisation/Studienplan_model.php
@@ -11,35 +11,46 @@ class Studienplan_model extends DB_Model
$this->dbTable = "lehre.tbl_studienplan";
$this->pk = "studienplan_id";
}
-
+
public function getStudienplaene($studiengang_kz)
{
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
-
+
return $this->loadWhere(array("studiengang_kz" => $studiengang_kz));
}
-
+
public function getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester = null, $orgform_kurzbz = null)
{
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
$this->addJoin("lehre.tbl_studienplan_semester", "studienplan_id");
-
+
$whereArray = array(
"tbl_studienplan.aktiv" => "TRUE",
"tbl_studienordnung.studiengang_kz" => $studiengang_kz,
"tbl_studienplan_semester.studiensemester_kurzbz" => $studiensemester_kurzbz
);
-
+
if(!is_null($ausbildungssemester))
{
$whereArray["tbl_studienplan_semester.semester"] = $ausbildungssemester;
}
-
+
if(!is_null($orgform_kurzbz))
{
$whereArray["orgform_kurzbz"] = $orgform_kurzbz;
}
-
+
return $this->StudienplanModel->loadWhere($whereArray);
}
-}
\ No newline at end of file
+
+ public function getStudienplanLehrveranstaltung($studienplan_id, $semester)
+ {
+ $this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id');
+ $this->addJoin('lehre.tbl_lehrveranstaltung', 'lehrveranstaltung_id');
+ $this->addOrder('tbl_lehrveranstaltung.sort');
+ return $this->loadWhere(array(
+ 'studienplan_id' => $studienplan_id,
+ 'tbl_studienplan_lehrveranstaltung.semester' => $semester
+ ));
+ }
+}
diff --git a/application/views/person/gradelist/course.php b/application/views/person/gradelist/course.php
new file mode 100644
index 000000000..1f1f1911b
--- /dev/null
+++ b/application/views/person/gradelist/course.php
@@ -0,0 +1,16 @@
+
+
+ |
+ |
+
+
+ |
+
diff --git a/application/views/person/gradelist/gradelist.php b/application/views/person/gradelist/gradelist.php
new file mode 100644
index 000000000..f00978294
--- /dev/null
+++ b/application/views/person/gradelist/gradelist.php
@@ -0,0 +1,52 @@
+load->view(
+ 'templates/FHC-Header',
+ array(
+ 'title' => 'Gradelist',
+ 'jquery' => true,
+ 'jqueryui' => true,
+ 'bootstrap' => true,
+ 'fontawesome' => true,
+ 'ajaxlib' => true,
+ 'customCSSs' => array(
+ 'public/css/tools/gradelist.css'
+ ),
+ 'customJSs' => array(
+ 'public/js/bootstrapper.js'
+ )
+ )
+ );
+?>
+
+
+
+
+
+
+ p->t('lehre', 'notendurchschnitt'); ?>:
+
+ p->t('lehre', 'gewichteternotendurchschnitt'); ?>:
+
+ p->t('lehre', 'ects'); ?>:
+
+
+ $row_semester)
+ {
+ $this->load->view('person/gradelist/semester.php', $row_semester);
+ }
+ ?>
+
+
+
+
+
+
+load->view('templates/FHC-Footer'); ?>
diff --git a/application/views/person/gradelist/semester.php b/application/views/person/gradelist/semester.php
new file mode 100644
index 000000000..ae9bbc5bc
--- /dev/null
+++ b/application/views/person/gradelist/semester.php
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+ 0):
+
+ echo '
Lehrveranstaltungen laut Studienplan '.$semesterdata['studienplan_bezeichnung'].'
';
+ ?>
+
+
+
+ | p->t('lehre','lehrveranstaltung');?> |
+ p->t('lehre','ects');?> |
+ p->t('lehre','note');?> |
+
+
+
+
+
+
+
+ |
+
+
+ |
+ |
+
+
+
+ 0):
+ ?>
+
p->t('lehre','nichtstudienplanrelevanteKurse'); ?>
+
+
+
+ | p->t('lehre','lehrveranstaltung');?> |
+ p->t('lehre','ects');?> |
+ p->t('lehre','note');?> |
+
+
+
+
+
+
+
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+
+
diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php
index 9baac9ea6..67c4dcf38 100644
--- a/application/views/system/infocenter/infocenterData.php
+++ b/application/views/system/infocenter/infocenterData.php
@@ -9,6 +9,7 @@
$LOGDATA_NAME_PARKED = '\'Parked\'';
$LOGTYPE_KURZBZ = '\'Processstate\'';
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
+ $ADDITIONAL_STG = '10021,10027';
$query = '
WITH currentOrNextStudiensemester AS (
@@ -64,7 +65,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
@@ -83,7 +87,10 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -104,7 +111,11 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (
+ sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -125,7 +136,10 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -146,7 +160,10 @@
AND pss.bewerbung_abgeschicktamum IS NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -166,7 +183,10 @@
WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
AND pss.bewerbung_abgeschicktamum IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.start >= NOW())
AND NOT EXISTS (
SELECT 1
@@ -206,7 +226,10 @@
FROM public.tbl_prestudent sps
JOIN public.tbl_studiengang ssg USING(studiengang_kz)
WHERE sps.person_id = p.person_id
- AND ssg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (ssg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ ssg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND '.$INTERESSENT_STATUS.' = (
SELECT spss.status_kurzbz
FROM public.tbl_prestudentstatus spss
diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php
index b3ee8c9e5..be8a4fe7f 100644
--- a/application/views/system/infocenter/infocenterFreigegebenData.php
+++ b/application/views/system/infocenter/infocenterFreigegebenData.php
@@ -6,6 +6,7 @@
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\'';
$REJECTED_STATUS = '\'Abgewiesener\'';
+ $ADDITIONAL_STG = '10021,10027';
$query = '
SELECT
@@ -51,7 +52,10 @@
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.bestaetigtam is not null
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
@@ -65,7 +69,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -78,7 +85,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
AND NOT EXISTS (
SELECT 1
@@ -97,7 +107,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "StgAbgeschickt",
@@ -167,7 +180,10 @@
FROM public.tbl_prestudent ps
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND EXISTS (
SELECT 1
FROM public.tbl_prestudentstatus pss
diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
index 2a976771b..fd1d2a607 100644
--- a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
+++ b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
@@ -5,6 +5,7 @@
$STUDIENGANG_TYP = '\'b\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\'';
+ $ADDITIONAL_STG = '10021,10027';
$query = '
SELECT
@@ -41,7 +42,10 @@
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -54,7 +58,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -67,7 +74,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "AnzahlAbgeschickt",
@@ -79,7 +89,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "StgAbgeschickt",
@@ -167,7 +180,10 @@
FROM public.tbl_prestudent ps
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND EXISTS (
SELECT 1
FROM public.tbl_prestudentstatus pss
diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php
index f48c97cc1..6a96eb6f9 100644
--- a/application/views/templates/FHC-Header.php
+++ b/application/views/templates/FHC-Header.php
@@ -93,10 +93,11 @@
// NavigationWidget CSS
if ($navigationwidget === true) generateCSSsInclude('public/css/NavigationWidget.css');
+ generateCSSsInclude('public/css/fhcomplete.css');
+
// Eventually required CSS
generateCSSsInclude($customCSSs); // Eventually required CSS
-
// --------------------------------------------------------------------------------------------------------
// Javascripts
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php
index c2e0672e8..4a80434a8 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php
@@ -129,7 +129,7 @@ if (!empty($anmeldungen))
{
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
$date = strtotime($date);
- $date = $date+(60*$pruefungsintervall*($count));
+ $date = $date+(60*$pruefungsintervall*($anmeldung->reihung-1));
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
$count++;
}
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php
index 0a35ba284..d647289fa 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php
@@ -248,7 +248,7 @@ $rechte->getBerechtigungen($uid);
{
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
$date = strtotime($date);
- $date = $date+(60*$pruefungsintervall*($count));
+ $date = $date+(60*$pruefungsintervall*($anmeldung->reihung-1));
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
$count++;
}
diff --git a/cis/private/stud_in_grp.php b/cis/private/stud_in_grp.php
index 95caee3d5..abf3a67a1 100644
--- a/cis/private/stud_in_grp.php
+++ b/cis/private/stud_in_grp.php
@@ -56,13 +56,13 @@ echo '
}
})
// Set number of result rows after filtering
- .bind("filterEnd",function(e, t)
+ .bind("filterEnd",function(e, t)
{
var rows = $('table.hasFilters tbody tr:visible').length;
$("#rowCounter").html(rows);
});
-
- $("#toggle").on("click", function(e)
+
+ $("#toggle").on("click", function(e)
{
$("#table").checkboxes("toggle");
e.preventDefault();
@@ -72,7 +72,7 @@ echo '
$("#mailSendButton").html('t('mailverteiler/mailAnAlleSenden'); ?>');
});
- $("#uncheck").on("click", function(e)
+ $("#uncheck").on("click", function(e)
{
$("#table").checkboxes("uncheck");
e.preventDefault();
@@ -175,7 +175,7 @@ if (isset($_GET['all']))
else
{
$qry = "SELECT
- vorname, nachname, uid
+ vorname, nachname, uid, geschlecht
FROM
campus.vw_student
WHERE
diff --git a/content/Tempus.pdf b/content/Tempus.pdf
deleted file mode 100644
index 3cdd18de2..000000000
Binary files a/content/Tempus.pdf and /dev/null differ
diff --git a/content/fas.xul.php b/content/fas.xul.php
index 9f31ec1c3..6f6c3a19a 100644
--- a/content/fas.xul.php
+++ b/content/fas.xul.php
@@ -110,6 +110,7 @@ foreach($addon_obj->result as $addon)
+
@@ -371,6 +372,12 @@ foreach($addon_obj->result as $addon)
label = "&menu-statistic-notenspiegel.label;"
command = "menu-statistic-notenspiegel:command"
accesskey = "&menu-statistic-notenspiegel.accesskey;"/>
+
diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php
index 7f299f41d..fa21059c3 100644
--- a/content/fasoverlay.js.php
+++ b/content/fasoverlay.js.php
@@ -1077,6 +1077,26 @@ function StatistikPrintNotenspiegelErweitert(typ)
window.open('content/statistik/notenspiegel_erweitert.php?studiengang_kz='+studiengang_kz+'&semester='+semester+'&typ='+typ+'&orgform='+orgform,'Notenspiegel');
}
+function StatistikPrintNotenspiegelStudent()
+{
+ var tree = document.getElementById('student-tree');
+ var data='';
+ //Wenn nichts markiert wurde -> alle exportieren
+ if(tree.currentIndex==-1)
+ {
+ alert("Bitte zuerst einen Studenten markieren");
+ return;
+ }
+
+ var student_uid = getTreeCellText(tree, 'student-treecol-uid', tree.currentIndex);
+ if (student_uid == '')
+ {
+ alert('Markierte Person ist kein Student');
+ return;
+ }
+ window.open('index.ci.php/person/gradelist/index/'+student_uid,'Notenspiegel');
+}
+
// ****
// * Liefert eine statistik ueber die Anzahl der Interessenten/Bewerber Studenten
// ****
diff --git a/content/tempus.js.php b/content/tempus.js.php
index eb948c830..28b323be3 100644
--- a/content/tempus.js.php
+++ b/content/tempus.js.php
@@ -473,7 +473,7 @@ function SyncLVPlan()
// ****
function OpenManualTempus()
{
- window.open('content/Tempus.pdf','Manual');
+ window.open('https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=tempus:allgemeines','Manual');
}
// ****
diff --git a/include/benutzer.class.php b/include/benutzer.class.php
index 3a17b0386..102c28a4b 100644
--- a/include/benutzer.class.php
+++ b/include/benutzer.class.php
@@ -30,6 +30,8 @@ class benutzer extends person
public $bn_ext_id;
public $aktivierungscode;
public $result = array();
+ public $updateaktivam;
+ public $updateaktivvon;
/**
* Konstruktor - Uebergibt die Connection und laedt optional einen Benutzer
@@ -65,6 +67,8 @@ class benutzer extends person
$this->bnaktiv = $this->db_parse_bool($row->aktiv);
$this->alias = $row->alias;
$this->aktivierungscode = $row->aktivierungscode;
+ $this->updateaktivam = $row->updateaktivam;
+ $this->updateaktivvon = $row->updateaktivvon;
if(!person::load($row->person_id))
return false;
diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd
index cad80671f..1fb4fde7f 100644
--- a/locale/de-AT/fas.dtd
+++ b/locale/de-AT/fas.dtd
@@ -114,6 +114,10 @@
+
+
+
+
diff --git a/public/css/fhcomplete.css b/public/css/fhcomplete.css
new file mode 100644
index 000000000..1f8de48b9
--- /dev/null
+++ b/public/css/fhcomplete.css
@@ -0,0 +1,23 @@
+.page-header {
+ margin: 10px 0 5px;
+}
+h1 {
+ font-size: 2rem;
+}
+h2 {
+ font-size: 1.8rem;
+}
+h3 {
+ font-size: 1.6rem;
+}
+
+h4 {
+ font-size: 1.4rem;
+}
+h5 {
+ font-size: 1.2rem;
+}
+h6 {
+ font-size: 1rem;
+
+}
diff --git a/public/css/sbadmin2/tablesort_bootstrap.css b/public/css/sbadmin2/tablesort_bootstrap.css
index e190f77e3..d10d7306e 100644
--- a/public/css/sbadmin2/tablesort_bootstrap.css
+++ b/public/css/sbadmin2/tablesort_bootstrap.css
@@ -19,6 +19,10 @@
border-bottom: #ccc 2px solid !important;
}
+/* Remove black border at top of table footer */
+.tablesorter-default tfoot > tr > th {
+ border-top: #ccc 2px solid !important;
+}
/* set colors of zebra widget */
table.tablesorter tbody tr.even td, table.tablesorter tbody tr.even:hover, table.tablesorter tbody tr.even td:hover{
background-color: #ffff;
@@ -57,4 +61,4 @@ table.tablesort-hover tr:hover, .tablesort-active{
/* bring datepicker to front */
#ui-datepicker-div{
z-index: 9999 !important;
-}
\ No newline at end of file
+}
diff --git a/public/css/tools/gradelist.css b/public/css/tools/gradelist.css
new file mode 100644
index 000000000..68c7fff36
--- /dev/null
+++ b/public/css/tools/gradelist.css
@@ -0,0 +1,40 @@
+.gradetable > thead > tr > th{
+ border-bottom: 1px solid black;
+}
+.gradetable > tbody > tr > td{
+ border-bottom: 1px solid #eeeeee;
+}
+.gradetable > tfoot > tr > th {
+ border-top: 1px solid black;
+}
+.gradelist_row_lv {
+}
+.gradelist_row_modul > td {
+ border-bottom: 1px solid black;
+ background-color: #eeeeee;
+}
+
+.gradelist_row_grade_positiv {
+ color: green;
+}
+.gradelist_row_grade_negativ {
+ color: red;
+}
+.gradelist_row_depth_1 > td:first-child {
+ padding-left: 15px !important;
+}
+.gradelist_row_depth_2 > td:first-child {
+ padding-left: 30px !important;
+}
+.gradelist_row_depth_3 > td:first-child {
+ padding-left: 45px !important;
+}
+.gradelist_row_depth_4 > td:first-child {
+ padding-left: 60px !important;
+}
+.gradelist_row_depth_5 > td:first-child {
+ padding-left: 75px !important;
+}
+.gradelist_row_depth_6 > td:first-child {
+ padding-left: 90px !important;
+}
diff --git a/public/js/PhrasesLib.js b/public/js/PhrasesLib.js
index 64b10759d..adedfa33d 100644
--- a/public/js/PhrasesLib.js
+++ b/public/js/PhrasesLib.js
@@ -25,7 +25,10 @@ var FHC_PhrasesLib = {
* @param {Object} params : parameters to be replaced instead of {} in phraseObj.text
* @returns {String} : phrase-text
*/
- t: function(category, phrase, params = {}) {
+ t: function(category, phrase, params) {
+
+ if (typeof(params)=='undefined')
+ params = {};
// Checks if FHC_JS_PHRASES_STORAGE_OBJECT is an array
if ($.isArray(FHC_JS_PHRASES_STORAGE_OBJECT))
diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js
index e1b6e0e46..27a6e9497 100644
--- a/public/js/infocenter/infocenterDetails.js
+++ b/public/js/infocenter/infocenterDetails.js
@@ -480,7 +480,8 @@ var InfocenterDetails = {
return;
// check if a prestudent in same semester is already freigegeben - then not send message again
- var freigegeben = false;
+ var rtFreigegeben = false;
+ var stgFreigegeben = false;
var receiverPrestudentstatus = null;
//get prestudentstatus of message receiver
@@ -509,8 +510,15 @@ var InfocenterDetails = {
&& prestudentstatus.bestaetigtam !== null && prestudentstatus.status_kurzbz === "Interessent"
&& prestudent.studiengangtyp === "b")
{
- freigegeben = true;
- break;
+ if (prestudentstatus.statusgrund_id === null)
+ {
+ rtFreigegeben = true;
+ break;
+ }
+ else if($.isNumeric(prestudentstatus.statusgrund_id))
+ {
+ stgFreigegeben = true;
+ }
}
}
}
@@ -520,46 +528,51 @@ var InfocenterDetails = {
var studiengangbezeichnung_englisch = receiverPrestudentstatus.studiengangbezeichnung_englisch;
var msgvars = {};
- if (freigegeben)
+ if (rtfreigabe)
{
- InfocenterDetails._refreshLog();
- //if already freigegeben, still send (shorter) message if Quereinsteiger
- if (ausbildungssemester > 1)
- {
- msgvars = {
- 'ausbildungssemester': ausbildungssemester,
- 'studiengangbezeichnung': studiengangbezeichnung,
- 'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
- };
- InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
- }
- }
- else
- {
- var vorlage_kurzbz = null;
-
- if (rtfreigabe)
+ if (rtFreigegeben)
{
+ //if already for RT freigegeben, still send short message if Quereinsteiger
if (ausbildungssemester > 1)
{
- vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE_QUER;
msgvars = {
- /*'rtlink': FHC_JS_DATA_STORAGE_OBJECT.app_root + 'addons/bewerbung/cis/registration.php?active=aufnahme',*/
'ausbildungssemester': ausbildungssemester,
'studiengangbezeichnung': studiengangbezeichnung,
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
- }
+ };
+
+ InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
+ }
+ }
+ else //not already for RT freigegeben - send RTfreigabe message
+ {
+ var vorlage = null;
+ //send Quereinstiegsmessage if later Ausbildungssemester
+ if (ausbildungssemester > 1)
+ {
+ msgvars = {
+ 'ausbildungssemester': ausbildungssemester,
+ 'studiengangbezeichnung': studiengangbezeichnung,
+ 'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
+ };
+ vorlage = RTFREIGABE_MESSAGE_VORLAGE_QUER
}
else
{
- vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE;
+ //send normal RTfreigabe message
+ vorlage = RTFREIGABE_MESSAGE_VORLAGE
}
+
+ InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage, msgvars);
}
- else
+ }
+ else if (rtfreigabe === false)
+ {
+ // if Freigabe to Studiengang, send StgFreigabe Message if not already sent
+ if (!stgFreigegeben)
{
- vorlage_kurzbz = STGFREIGABE_MESSAGE_VORLAGE;
+ InfocenterDetails.sendFreigabeMessage(prestudentid, STGFREIGABE_MESSAGE_VORLAGE, msgvars);
}
- InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage_kurzbz, msgvars);
}
};
@@ -727,7 +740,7 @@ var InfocenterDetails = {
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var statusgrund_id = $("#frgstatusgrselect_" + prestudent_id + " select[name=frgstatusgrund]").val();
var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id};
- InfocenterDetails.saveFreigabe(data);//Studiengangfreigabe
+ InfocenterDetails.saveFreigabe(data, false);//Studiengangfreigabe
}
)
},
diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php
index ea2876198..96565dac7 100644
--- a/rdf/lehrauftrag.xml.php
+++ b/rdf/lehrauftrag.xml.php
@@ -28,17 +28,17 @@ require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/lehreinheit.class.php');
-require_once('../include/fachbereich.class.php');
+require_once('../include/organisationseinheit.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/bisverwendung.class.php');
-if(isset($_SERVER['REMOTE_USER']))
+if (isset($_SERVER['REMOTE_USER']))
{
// Wenn das Script direkt aufgerufen wird muss es ein Admin sein
$user=get_uid();
$berechtigung = new benutzerberechtigung();
$berechtigung->getBerechtigungen($user);
- if(!$berechtigung->isBerechtigt('admin'))
+ if (!$berechtigung->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diese Seite');
}
@@ -51,16 +51,16 @@ header("Pragma: no-cache");
header("Content-type: application/xhtml+xml");
//Parameter holen
-if(isset($_GET['uid']))
+if (isset($_GET['uid']))
$uid = $_GET['uid'];
else
- $uid=null;
+ $uid = null;
-if(isset($_GET['stg_kz']))
+if (isset($_GET['stg_kz']))
$studiengang_kz = $_GET['stg_kz'];
else
die('Fehlerhafte Parameteruebergabe');
-if(isset($_GET['ss']))
+if (isset($_GET['ss']))
$ss = $_GET['ss'];
else
die('Fehlerhafte Parameteruebergabe');
@@ -77,20 +77,19 @@ foreach ($studiengang->result as $row)
//Studiengang laden
$studiengang = new studiengang($studiengang_kz);
-//Fachbereiche laden
-$fb_arr = array();
-$fachbereich_obj = new fachbereich();
-$fachbereich_obj->getAll();
-foreach ($fachbereich_obj->result as $fb)
+//Organisationseinheiten laden
+$oe_arr = array();
+$organisationseinheit_obj = new organisationseinheit();
+$organisationseinheit_obj->getAll();
+foreach ($organisationseinheit_obj->result as $oe)
{
- $fb_arr[$fb->oe_kurzbz] = $fb->bezeichnung;
- $fb_arr[$fb->fachbereich_kurzbz] = $fb->bezeichnung;
+ $oe_arr[$oe->oe_kurzbz] = $oe->bezeichnung;
}
//Studiengangsleiter holen
-$stgl='';
+$stgl = '';
$db = new basis_db();
-if($studiengang_kz!='')
+if ($studiengang_kz != '')
{
$studiengang_obj = new studiengang();
$stgleiter = $studiengang_obj->getLeitung($studiengang_kz);
@@ -102,7 +101,7 @@ if($studiengang_kz!='')
}
}
-if($uid==null)
+if ($uid == null)
{
$qry = "
SELECT
@@ -120,11 +119,11 @@ if($uid==null)
UNION
SELECT
tbl_benutzer.uid as mitarbeiter_uid
- FROM
- lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
+ FROM
+ lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter
- WHERE
- tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
+ WHERE
+ tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
student_uid=vw_student.uid AND
tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND
@@ -135,9 +134,9 @@ if($uid==null)
tbl_projektbetreuer.stunden!='0'
) as mitarbeiter ORDER BY mitarbeiter_uid";
- if($db->db_query($qry))
+ if ($db->db_query($qry))
{
- while($row = $db->db_fetch_object())
+ while ($row = $db->db_fetch_object())
{
drawLehrauftrag($row->mitarbeiter_uid);
}
@@ -145,11 +144,12 @@ if($uid==null)
}
else
drawLehrauftrag($uid);
+
function drawLehrauftrag($uid)
{
global $studiengang;
global $studiengang_kz;
- global $fb_arr;
+ global $oe_arr;
global $stg_arr;
global $ss;
global $xml;
@@ -161,17 +161,17 @@ function drawLehrauftrag($uid)
FH-';
//Studiengang
$typ='';
- if($studiengang->typ=='d')
+ if ($studiengang->typ=='d')
{
$xml.= 'Diplom-';
$typ = 'Diplom';
}
- elseif($studiengang->typ=='m')
+ elseif ($studiengang->typ=='m')
{
$xml.= 'Master-';
$typ = 'Master';
}
- elseif($studiengang->typ=='b')
+ elseif ($studiengang->typ=='b')
{
$xml.= 'Bachelor-';
$typ = 'Bachelor';
@@ -183,41 +183,58 @@ function drawLehrauftrag($uid)
$xml.= ''.$typ.'';
//Studiensemester
- if(substr($ss,0,2)=='WS')
+ if (substr($ss,0,2) == 'WS')
$studiensemester = 'Wintersemester '.substr($ss,2);
else
$studiensemester = 'Sommersemester '.substr($ss,2);
- $xml.="$ss
+ $xml .= "$ss
$studiensemester";
//Lektor
- $qry = "SELECT * FROM campus.vw_mitarbeiter LEFT JOIN public.tbl_adresse USING(person_id) WHERE uid=".$db->db_add_param($uid)."
- ORDER BY zustelladresse DESC, firma_id LIMIT 1";
+ $qry = "
+ SELECT
+ *
+ FROM
+ campus.vw_mitarbeiter
+ LEFT JOIN public.tbl_adresse USING(person_id)
+ WHERE
+ uid=".$db->db_add_param($uid)."
+ ORDER BY zustelladresse DESC, firma_id
+ LIMIT 1";
- if($result = $db->db_query($qry))
+ if ($result = $db->db_query($qry))
{
- if($row = $db->db_fetch_object($result))
+ if ($row = $db->db_fetch_object($result))
{
- $firmenanschrift=false;
- if($row->firma_id!='')
+ $firmenanschrift = false;
+ if ($row->firma_id != '')
{
- $qry ="SELECT tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort FROM public.tbl_firma JOIN public.tbl_adresse USING(firma_id)
- WHERE tbl_firma.firma_id=".$db->db_add_param($row->firma_id)." AND person_id=".$db->db_add_param($row->person_id)." LIMIT 1";
- if($result_firma = $db->db_query($qry))
+ $qry ="
+ SELECT
+ tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort
+ FROM
+ public.tbl_firma
+ JOIN public.tbl_adresse USING(firma_id)
+ WHERE
+ tbl_firma.firma_id=".$db->db_add_param($row->firma_id)."
+ AND person_id=".$db->db_add_param($row->person_id)."
+ LIMIT 1";
+
+ if ($result_firma = $db->db_query($qry))
{
- if($row_firma = $db->db_fetch_object($result_firma))
+ if ($row_firma = $db->db_fetch_object($result_firma))
{
$name_gesamt = $row_firma->name;
$strasse = $row_firma->strasse;
$plz = $row_firma->plz;
$ort = $row_firma->ort;
$zuhanden = "zu Handen ".trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost);
- $firmenanschrift=true;
+ $firmenanschrift = true;
}
}
}
- if(!$firmenanschrift)
+ if (!$firmenanschrift)
{
$strasse = $row->strasse;
$plz = $row->plz;
@@ -229,7 +246,7 @@ function drawLehrauftrag($uid)
$bis = new bisverwendung();
$bis->getLastAktVerwendung($uid);
- $xml.='
+ $xml .= '
titelpre.']]>
vorname.']]>
@@ -248,65 +265,72 @@ function drawLehrauftrag($uid)
}
//Lehreinheiten
- $qry = "SELECT * FROM campus.vw_lehreinheit WHERE mitarbeiter_uid=".$db->db_add_param($uid)." AND studiensemester_kurzbz=".$db->db_add_param($ss);
+ $qry = "
+ SELECT
+ *
+ FROM
+ campus.vw_lehreinheit
+ WHERE
+ mitarbeiter_uid=".$db->db_add_param($uid)."
+ AND studiensemester_kurzbz=".$db->db_add_param($ss);
- if($studiengang_kz!='') //$studiengang_kz!='0' &&
+ if ($studiengang_kz != '') //$studiengang_kz!='0' &&
$qry .= "AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
- $qry.=" ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
+ $qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
$lv = array();
- $anzahl_lvs=0;
- if($result = $db->db_query($qry))
+ $anzahl_lvs = 0;
+ if ($result = $db->db_query($qry))
{
- $last_le='';
+ $last_le = '';
$gesamtkosten = 0;
$gesamtstunden = 0;
$gruppen = array();
- $grp='';
- $gruppen_getrennt='';
- $einzelgruppe='';
- while($row = $db->db_fetch_object($result))
+ $grp = '';
+ $gruppen_getrennt = '';
+ $einzelgruppe = '';
+ while ($row = $db->db_fetch_object($result))
{
- if($last_le!=$row->lehreinheit_id && $last_le!='')
+ if ($last_le != $row->lehreinheit_id && $last_le != '')
{
array_unique($gruppen);
sort($gruppen);
foreach ($gruppen as $gruppe)
{
- $grp.=$gruppe.' ';
- $gruppen_getrennt.= '';
+ $grp .= $gruppe.' ';
+ $gruppen_getrennt .= '';
}
$einzelgruppe = $gruppen_getrennt;
$lv[$anzahl_lvs]['lehreinheit_id'] = $lehreinheit_id;
$lv[$anzahl_lvs]['lehrveranstaltung'] = $lehrveranstaltung;
- $lv[$anzahl_lvs]['fachbereich'] = (isset($fb_arr[$fachbereich])?$fb_arr[$fachbereich]:'');
- $lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' ');
- $lv[$anzahl_lvs]['stunden'] = ($stunden!=''?$stunden:' ');
- $lv[$anzahl_lvs]['satz'] = ($satz!=''?$satz:' ');
- $lv[$anzahl_lvs]['faktor'] = ($faktor!=''?$faktor:' ');
+ $lv[$anzahl_lvs]['fachbereich'] = (isset($oe_arr[$lehrfach_oe_kurzbz])?$oe_arr[$lehrfach_oe_kurzbz]:'');
+ $lv[$anzahl_lvs]['gruppe'] = ($grp != ''?trim($grp):' ');
+ $lv[$anzahl_lvs]['stunden'] = ($stunden != ''?$stunden:' ');
+ $lv[$anzahl_lvs]['satz'] = ($satz != ''?$satz:' ');
+ $lv[$anzahl_lvs]['faktor'] = ($faktor != ''?$faktor:' ');
$lv[$anzahl_lvs]['brutto'] = number_format($brutto,2,',','.');
- $lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' ');
+ $lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt != ''?$gruppen_getrennt:' ');
$anzahl_lvs++;
$gesamtkosten = $gesamtkosten + $brutto;
$gesamtstunden = $gesamtstunden + $stunden;
- $lehreinheit_id='';
+ $lehreinheit_id = '';
$lehrveranstaltung = '';
- $fachbereich = '';
- $gruppen= array();
+ $lehrfach_oe_kurzbz = '';
+ $gruppen = array();
$stunden = '';
$satz = '';
$faktor = '';
$brutto = '';
- $grp='';
- $gruppen_getrennt='';
+ $grp = '';
+ $gruppen_getrennt = '';
}
- $lehreinheit_id=$row->lehreinheit_id;
+ $lehreinheit_id = $row->lehreinheit_id;
$lehrveranstaltung = CutString($row->lv_bezeichnung, 30, '...').' '.$row->lehrform_kurzbz.' '.$row->lv_semester.'. Semester';
- $fachbereich = $row->fachbereich_kurzbz;
+ $lehrfach_oe_kurzbz = $row->lehrfach_oe_kurzbz;
- if($row->gruppe_kurzbz!='')
+ if ($row->gruppe_kurzbz != '')
$gruppen[] = $row->gruppe_kurzbz;
else
$gruppen[] = trim($stg_arr[$row->studiengang_kz].'-'.$row->semester.$row->verband.$row->gruppe).' ';
@@ -314,21 +338,21 @@ function drawLehrauftrag($uid)
$stunden = $row->semesterstunden;
$satz = $row->stundensatz;
$faktor = $row->faktor;
- $brutto = $row->semesterstunden*$row->stundensatz*$row->faktor;
- $last_le=$row->lehreinheit_id;
+ $brutto = $row->semesterstunden * $row->stundensatz * $row->faktor;
+ $last_le = $row->lehreinheit_id;
}
array_unique($gruppen);
sort($gruppen);
foreach ($gruppen as $gruppe)
{
- $grp.=$gruppe.' ';
- $gruppen_getrennt.= '';
+ $grp .= $gruppe.' ';
+ $gruppen_getrennt .= '';
}
- if(isset($lehreinheit_id))
+ if (isset($lehreinheit_id))
{
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($lehreinheit_id)?$lehreinheit_id:' ');
$lv[$anzahl_lvs]['lehrveranstaltung'] = (isset($lehrveranstaltung)?$lehrveranstaltung:' ');
- $lv[$anzahl_lvs]['fachbereich'] = (isset($fachbereich)?$fb_arr[$fachbereich]:' ');
+ $lv[$anzahl_lvs]['fachbereich'] = (isset($lehrfach_oe_kurzbz)?$oe_arr[$lehrfach_oe_kurzbz]:' ');
$lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' ');
$lv[$anzahl_lvs]['stunden'] = (isset($stunden)?$stunden:' ');
$lv[$anzahl_lvs]['satz'] = (isset($satz)?$satz:' ');
@@ -337,9 +361,9 @@ function drawLehrauftrag($uid)
$lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' ');
$anzahl_lvs++;
- if(isset($brutto))
+ if (isset($brutto))
$gesamtkosten = $gesamtkosten + $brutto;
- if(isset($stunden))
+ if (isset($stunden))
$gesamtstunden = $gesamtstunden + $stunden;
}
}
@@ -357,8 +381,8 @@ function drawLehrauftrag($uid)
,lehre.tbl_lehreinheit
,lehre.tbl_lehrveranstaltung AS lehrfach
,lehre.tbl_lehrveranstaltung
- ,PUBLIC.tbl_organisationseinheit
- ,PUBLIC.tbl_benutzer
+ ,public.tbl_organisationseinheit
+ ,public.tbl_benutzer
,lehre.tbl_projektarbeit
,campus.vw_student
WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id
@@ -370,27 +394,27 @@ function drawLehrauftrag($uid)
AND tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id
AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($ss)."
AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id";
- if($studiengang_kz!='')
- $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
- if($result = $db->db_query($qry))
+ if ($studiengang_kz != '')
+ $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
+ if ($result = $db->db_query($qry))
{
- while($row = $db->db_fetch_object($result))
+ while ($row = $db->db_fetch_object($result))
{
$stg = new studiengang();
$stg->load($row->studiengang_kz);
$stg_kuerzel = $stg->kuerzel;
- $brutto = $row->stunden*$row->stundensatz*$row->faktor;
- if($row->stunden!=0)
+ $brutto = $row->stunden * $row->stundensatz * $row->faktor;
+ if ($row->stunden != 0)
{
- switch($row->projekttyp_kurzbz)
+ switch ($row->projekttyp_kurzbz)
{
- case 'Bachelor': $kuerzel='BA'; break;
- case 'Diplom': $kuerzel='DA'; break;
- case 'Projekt': $kuerzel='PJ'; break;
- case 'Praktikum': $kuerzel='PX'; break;
- case 'Praxis': $kuerzel='PX'; break;
- default: $kuerzel='PA'; break;
+ case 'Bachelor': $kuerzel = 'BA'; break;
+ case 'Diplom': $kuerzel = 'DA'; break;
+ case 'Projekt': $kuerzel = 'PJ'; break;
+ case 'Praktikum': $kuerzel = 'PX'; break;
+ case 'Praxis': $kuerzel = 'PX'; break;
+ default: $kuerzel = 'PA'; break;
}
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:' ');
@@ -414,7 +438,7 @@ function drawLehrauftrag($uid)
foreach ($lv as $lv_row)
{
- $xml.='
+ $xml .= '
@@ -431,15 +455,15 @@ function drawLehrauftrag($uid)
};
// Gesamtstunden und Gesamtkosten
- $xml.="
+ $xml .= "
";
- $xml.="
+ $xml .= "
";
- $xml.= '
+ $xml .= '
';
diff --git a/system/checksystem.php b/system/checksystem.php
index 73b16e3b3..7bdf96446 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -92,6 +92,7 @@ $beschreibung=1;
$berechtigungen = array(
array('admin','Super User Rechte'),
array('assistenz','Assistenz'),
+ array('student','Defaultberechtigung für Studierende'),
array('basis/addon','Addons verwalten'),
array('basis/ampel','Ampeln Administrieren'),
array('basis/ampeluebersicht','Ampel Übersicht für Leiter'),
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index f66bf9937..c7872202a 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -2517,7 +2517,7 @@ if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='reihungstest
if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_betreuerart LIMIT 1"))
{
$qry = "ALTER TABLE lehre.tbl_betreuerart ADD COLUMN aktiv boolean NOT NULL DEFAULT TRUE;";
-
+
if(!$db->db_query($qry))
echo 'lehre.tbl_betreuerart: '.$db->db_last_error().'
';
else
@@ -2528,7 +2528,7 @@ if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_betreuerart LIMIT 1"))
if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_projekttyp LIMIT 1"))
{
$qry = "ALTER TABLE lehre.tbl_projekttyp ADD COLUMN aktiv boolean NOT NULL DEFAULT TRUE;";
-
+
if(!$db->db_query($qry))
echo 'lehre.tbl_projekttyp: '.$db->db_last_error().'
';
else
@@ -2541,7 +2541,7 @@ if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS
if($db->db_num_rows($result) > 0)
{
$qry = "ALTER TABLE public.tbl_prestudent ALTER COLUMN aufmerksamdurch_kurzbz DROP NOT NULL;";
-
+
if(!$db->db_query($qry))
echo 'public.tbl_prestudent '.$db->db_last_error().'
';
else
@@ -2549,6 +2549,173 @@ if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS
}
}
+// Spalte Zugangscode zu vw_msg_vars hinzufügen
+if(!$result = @$db->db_query('SELECT "Zugangscode" FROM public.vw_msg_vars LIMIT 1'))
+{
+ $qry = '
+ CREATE OR REPLACE VIEW public.vw_msg_vars AS (
+ SELECT DISTINCT ON(p.person_id, pr.prestudent_id) p.person_id,
+ pr.prestudent_id AS prestudent_id,
+ p.nachname AS "Nachname",
+ p.vorname AS "Vorname",
+ p.anrede AS "Anrede",
+ a.strasse AS "Strasse",
+ a.ort AS "Ort",
+ a.plz AS "PLZ",
+ a.gemeinde AS "Gemeinde",
+ a.langtext AS "Nation",
+ ke.kontakt AS "Email",
+ kt.kontakt AS "Telefon",
+ s.bezeichnung AS "Studiengang DE",
+ s.english AS "Studiengang EN",
+ st.bezeichnung AS "Typ",
+ orgform_kurzbz AS "Orgform",
+ p.zugangscode AS "Zugangscode"
+ FROM public.tbl_person p
+ LEFT JOIN (
+ SELECT person_id,
+ kontakt
+ FROM public.tbl_kontakt
+ WHERE zustellung = TRUE
+ AND kontakttyp = \'email\'
+ ORDER BY kontakt_id DESC
+ ) ke USING(person_id)
+ LEFT JOIN (
+ SELECT person_id,
+ kontakt
+ FROM public.tbl_kontakt
+ WHERE zustellung = TRUE
+ AND kontakttyp IN (\'telefon\', \'mobil\')
+ ORDER BY kontakt_id DESC
+ ) kt USING(person_id)
+ LEFT JOIN (
+ SELECT person_id,
+ strasse,
+ ort,
+ plz,
+ gemeinde,
+ langtext
+ FROM public.tbl_adresse
+ LEFT JOIN bis.tbl_nation ON(bis.tbl_nation.nation_code = public.tbl_adresse.nation)
+ WHERE public.tbl_adresse.heimatadresse = TRUE
+ ORDER BY adresse_id DESC
+ ) a USING(person_id)
+ LEFT JOIN public.tbl_prestudent pr USING(person_id)
+ INNER JOIN public.tbl_studiengang s USING(studiengang_kz)
+ INNER JOIN public.tbl_studiengangstyp st USING(typ)
+ WHERE p.aktiv = TRUE
+ ORDER BY p.person_id ASC, pr.prestudent_id ASC
+ );
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'public.vw_msg_vars: '.$db->db_last_error().'
';
+ else
+ echo '
public.vw_msg_vars zugangscode added';
+}
+
+// Spalte Zugangscode zu vw_msg_vars_person hinzufügen
+if(!$result = @$db->db_query('SELECT "Zugangscode" FROM public.vw_msg_vars_person LIMIT 1'))
+{
+ $qry = '
+ CREATE OR REPLACE VIEW public.vw_msg_vars_person AS (
+ SELECT DISTINCT ON(p.person_id) p.person_id,
+ p.nachname AS "Nachname",
+ p.vorname AS "Vorname",
+ p.anrede AS "Anrede",
+ a.strasse AS "Strasse",
+ a.ort AS "Ort",
+ a.plz AS "PLZ",
+ a.gemeinde AS "Gemeinde",
+ a.langtext AS "Nation",
+ ke.kontakt AS "Email",
+ kt.kontakt AS "Telefon",
+ ( SELECT tbl_studiensemester.bezeichnung
+ FROM tbl_studiensemester
+ WHERE "substring"(tbl_studiensemester.studiensemester_kurzbz::text, 1, 2) = \'WS\'::text AND (tbl_studiensemester.start >= now() AND tbl_studiensemester.ende >= now() OR tbl_studiensemester.start <= now() AND tbl_studiensemester.ende >= now())
+ ORDER BY tbl_studiensemester.start
+ LIMIT 1) AS "WS naechstes",
+ ( SELECT tbl_studiensemester.bezeichnung
+ FROM tbl_studiensemester
+ WHERE "substring"(tbl_studiensemester.studiensemester_kurzbz::text, 1, 2) = \'WS\'::text AND (tbl_studiensemester.start >= now() AND tbl_studiensemester.ende >= now() OR tbl_studiensemester.start <= now() AND tbl_studiensemester.ende >= now())
+ ORDER BY tbl_studiensemester.start
+ OFFSET 1
+ LIMIT 1) AS "WS uebernaechstes",
+ p.zugangscode as "Zugangscode"
+ FROM public.tbl_person p
+ LEFT JOIN (
+ SELECT person_id,
+ kontakt
+ FROM public.tbl_kontakt
+ WHERE zustellung = TRUE
+ AND kontakttyp = \'email\'
+ ORDER BY kontakt_id DESC
+ ) ke USING(person_id)
+ LEFT JOIN (
+ SELECT person_id,
+ kontakt
+ FROM public.tbl_kontakt
+ WHERE zustellung = TRUE
+ AND kontakttyp IN (\'telefon\', \'mobil\')
+ ORDER BY kontakt_id DESC
+ ) kt USING(person_id)
+ LEFT JOIN (
+ SELECT person_id,
+ strasse,
+ ort,
+ plz,
+ gemeinde,
+ langtext
+ FROM public.tbl_adresse
+ LEFT JOIN bis.tbl_nation ON(bis.tbl_nation.nation_code = public.tbl_adresse.nation)
+ WHERE public.tbl_adresse.heimatadresse = TRUE
+ ORDER BY adresse_id DESC
+ ) a USING(person_id)
+ ORDER BY p.person_id ASC
+ );';
+
+ if(!$db->db_query($qry))
+ echo 'public.vw_msg_vars_person: '.$db->db_last_error().'
';
+ else
+ echo '
public.vw_msg_vars_person zugangscode added';
+}
+
+// Spalte Zugangscode zu vw_msg_vars_person hinzufügen
+// Fachbereich entfernen
+if(!$result = @$db->db_query('SELECT lehrfach_oe_kurzbz FROM campus.vw_lehreinheit LIMIT 1'))
+{
+ $qry = "
+ DROP VIEW campus.vw_lehreinheit;
+ CREATE OR REPLACE VIEW campus.vw_lehreinheit as
+ SELECT
+ tbl_lehrveranstaltung.studiengang_kz AS lv_studiengang_kz, tbl_lehrveranstaltung.semester AS lv_semester, tbl_lehrveranstaltung.kurzbz AS lv_kurzbz, tbl_lehrveranstaltung.bezeichnung AS lv_bezeichnung, tbl_lehrveranstaltung.ects AS lv_ects, tbl_lehrveranstaltung.lehreverzeichnis AS lv_lehreverzeichnis,
+ tbl_lehrveranstaltung.planfaktor AS lv_planfaktor, tbl_lehrveranstaltung.planlektoren AS lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten AS lv_planpersonalkosten, tbl_lehrveranstaltung.plankostenprolektor AS lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz AS lv_orgform_kurzbz,
+ tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrveranstaltung_id, tbl_lehreinheit.studiensemester_kurzbz, tbl_lehreinheit.lehrform_kurzbz, tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.start_kw, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, tbl_lehreinheit.lehre,
+ tbl_lehreinheit.unr, tbl_lehreinheit.lvnr, tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz, tbl_lehreinheit.insertamum, tbl_lehreinheit.insertvon, tbl_lehreinheit.updateamum, tbl_lehreinheit.updatevon,
+ lehrfach.lehrveranstaltung_id AS lehrfach_id,
+ lehrfach.oe_kurzbz as lehrfach_oe_kurzbz,
+ lehrfach.kurzbz AS lehrfach, lehrfach.bezeichnung AS lehrfach_bez, lehrfach.farbe,
+ tbl_lehrveranstaltung.aktiv, lehrfach.sprache, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.semesterstunden, tbl_lehrveranstaltung.semesterstunden AS lv_semesterstunden, tbl_lehreinheitmitarbeiter.planstunden, tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.faktor,
+ tbl_lehreinheit.anmerkung, tbl_mitarbeiter.kurzbz AS lektor, tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, tbl_lehreinheitgruppe.gruppe_kurzbz,
+ tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang, tbl_studiengang.bezeichnung AS stg_bez, tbl_studiengang.typ AS stg_typ, tbl_lehreinheitmitarbeiter.anmerkung AS anmerkunglektor, tbl_lehrveranstaltung.lehrform_kurzbz AS lv_lehrform_kurzbz,
+ tbl_lehrveranstaltung.bezeichnung_english AS lv_bezeichnung_english, tbl_lehrveranstaltung.lehrtyp_kurzbz
+ FROM lehre.tbl_lehreinheit
+ JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
+ JOIN lehre.tbl_lehrveranstaltung lehrfach ON (tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
+ JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id)
+ JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
+ JOIN lehre.tbl_lehreinheitgruppe USING (lehreinheit_id)
+ JOIN public.tbl_studiengang ON tbl_lehreinheitgruppe.studiengang_kz = tbl_studiengang.studiengang_kz;
+ GRANT SELECT ON campus.vw_lehreinheit TO admin;
+ GRANT SELECT ON campus.vw_lehreinheit TO vilesci;
+ GRANT SELECT ON campus.vw_lehreinheit TO web;
+ ";
+ if(!$db->db_query($qry))
+ echo 'campus.vw_lehreinheit: '.$db->db_last_error().'
';
+ else
+ echo '
campus.vw_lehreinheit lehrfach_oe_kurzbz added, fachbereich_kurzbz removed';
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute!
';
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index d8788b292..27dbce891 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -36,6 +36,7 @@ $filters = array(
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
+ {"name": "LastActionType"},
{"name": "User/Operator"},
{"name": "LockUser"}
],
@@ -68,6 +69,7 @@ $filters = array(
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
+ {"name": "LastActionType"},
{"name": "User/Operator"},
{"name": "LockUser"}
],
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 4f9d885d0..95cefaa85 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -1519,7 +1519,6 @@ $phrases = array(
)
)
),
-
array(
'app' => 'core',
'category' => 'filter',
@@ -1541,9 +1540,6 @@ $phrases = array(
)
),
-
-
-
//**************************** CORE/person
array(
'app' => 'core',
@@ -2207,8 +2203,126 @@ $phrases = array(
)
)
),
-
-
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'ects',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'notendurchschnitt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Notendurchschnitt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Grade average',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'gewichteternotendurchschnitt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'gewichteter Notendurchschnitt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'weighted grade point average',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'note',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Note',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Grade',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrveranstaltung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Lehrveranstaltung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Course',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'nichtstudienplanrelevanteKurse',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nicht studienplanrelevante Lehrveranstaltung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'additional Courses',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
//********************** INFOCENTER/infocenter
array(
diff --git a/system/xsl/Lehrauftrag_ESA_EIF.xsl b/system/xsl/Lehrauftrag_ESA_EIF.xsl
new file mode 100644
index 000000000..fa743924f
--- /dev/null
+++ b/system/xsl/Lehrauftrag_ESA_EIF.xsl
@@ -0,0 +1,529 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abs.: Technikum Wien GmbH, Höchstädtplatz 6, 1200 Wien
+
+
+
+ Lehrauftrag Lehrgang
+
+
+
+ SV.Nr.:
+ Personalnummer:
+
+
+ Wir beauftragen Sie, im folgende Lehrveranstaltungen abzuhalten:
+
+
+
+
+
+
+
+
+
+
+
+ ID
+
+
+ Lehrveranstaltung
+
+
+ Institut
+
+
+ Gruppe(n)
+
+
+
+ Std.
+
+
+ Satz
+
+
+ Brutto
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summe:
+
+
+
+
+
+
+
+
+
+ €
+
+
+
+
+
+ Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
+ Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
+ Außerdem besteht die Verpflichtung zur Teilnahme an LektorInnenkonferenzen.
+
+
+
+
+
+
+
+
+
+ Wien, am
+
+
+
+
+
+
+
+
+
+
+
+ Ort, Datum
+
+
+
+
+
+
+ Lehrgangsleitung
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ €
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/system/xsl/lehrauftrag_0.xsl b/system/xsl/lehrauftrag_0.xsl
index 94873a2fb..c7c39af47 100644
--- a/system/xsl/lehrauftrag_0.xsl
+++ b/system/xsl/lehrauftrag_0.xsl
@@ -1,60 +1,60 @@
-
-
@@ -340,7 +340,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
@@ -374,7 +374,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- Lehrauftrag
+ Lehrauftrag
-Studiengang
@@ -403,7 +403,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Lehrveranstaltung
- Institut
+ Department
Gruppe(n)
@@ -419,9 +419,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Brutto
-
+
-
+
@@ -450,13 +450,13 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
€
-
+
- Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
- Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
+ Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
+ Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
Außerdem besteht die Verpflichtung zur Teilnahme an LektorInnenkonferenzen.
@@ -514,9 +514,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
+
-
+
@@ -530,7 +530,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
+
@@ -541,7 +541,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
€
-
+
diff --git a/system/xsl/lehrauftrag_Lehrgaenge.xsl b/system/xsl/lehrauftrag_Lehrgaenge.xsl
index c370f721f..69bbee003 100644
--- a/system/xsl/lehrauftrag_Lehrgaenge.xsl
+++ b/system/xsl/lehrauftrag_Lehrgaenge.xsl
@@ -1,60 +1,60 @@
-
-
@@ -336,7 +336,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
@@ -396,7 +396,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Lehrveranstaltung
- Institut
+ Department
Gruppe(n)
@@ -412,9 +412,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Brutto
-
+
-
+
@@ -447,8 +447,8 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
- Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
+ Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
+ Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
Außerdem besteht die Verpflichtung zur Teilnahme an LektorInnenkonferenzen.
@@ -506,9 +506,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
+
-
+