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('global', 'uebersicht')); ?> - + vorname.' '.$person->nachname.' ('.$user.')';?> +

+
+
+
+ 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" - + - +