From 0b1d84788220bc3ea9c218e73b4bceaefbb975e6 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 26 Mar 2020 14:16:37 +0100 Subject: [PATCH 1/4] Added Download PDF of accepted Lehrauftraege (seperated by FH /Lehrgaenge) Lectors can now download as pfd all their accepted Lehrauftraege. Therefore two buttons are available for seperate download of Lehrauftraege on FH or Lehrgaenge. The queries are proofing now if a contract exists and if the status is 'akzeptiert'. --- .../lehre/lehrauftrag/acceptLehrauftrag.php | 1 + cis/private/pdfExport.php | 9 +++-- .../js/lehre/lehrauftrag/acceptLehrauftrag.js | 33 +++++++++++++++++++ rdf/lehrauftrag.xml.php | 32 ++++++++++++++++-- 4 files changed, 70 insertions(+), 5 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index a4116e8d0..dbf54deda 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -111,6 +111,7 @@ $this->load->view(
+
widgetlib->widget( diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index 851c0c6c8..f5322d1ff 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -37,6 +37,7 @@ require_once('../../include/studiengang.class.php'); require_once('../../include/student.class.php'); require_once('../../include/prestudent.class.php'); require_once('../../include/dokument_export.class.php'); +require_once('../../include/person.class.php'); if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); @@ -135,6 +136,8 @@ if (isset($_GET['typ'])) $params .= '&typ='.$_GET['typ']; if (isset($_GET['all'])) $params .= '&all=1'; +if (isset($_GET['xsl_oe_kurzbz'])) + $params .= '&xsl_oe_kurzbz='. $_GET['xsl_oe_kurzbz']; //OE fuer Output ermitteln @@ -166,7 +169,7 @@ else $konto = new konto(); -if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) +if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin')) { $buchungstypen = array(); if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) @@ -232,7 +235,9 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) $filename .= '-'.$studienordnung->studiengangkurzbzlang; break; default: - $filename = $xsl; + $person = new Person(); + $person->getPersonFromBenutzer($user); + $filename = $xsl. '_'. $person->nachname; } $dokument->setFilename($filename); diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index da041c232..dc4fbe97e 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -19,6 +19,8 @@ const ICON_LEHRAUFTRAG_APPROVED = ''; const ICON_LEHRAUFTRAG_CANCELLED = ''; +const APP_ROOT = FHC_JS_DATA_STORAGE_OBJECT.app_root; + // ----------------------------------------------------------------------------------------------------------------- // Mutators - setter methods to manipulate table data when entering the tabulator // ----------------------------------------------------------------------------------------------------------------- @@ -265,6 +267,8 @@ function func_footerElement(){ footer_html += ''; @@ -288,6 +292,35 @@ function footer_downloadCSV(){ $('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output } +// Performs download PDF accepted Lehrauftraege +function footer_downloadPDF_LehrauftraegeFHTW() { + var uid = $("#uid").val(); + var studiensemester = $('#studiensemester').val(); + + window.open(APP_ROOT + '/cis/private/pdfExport.php' + + '?xml=lehrauftrag.xml.php' + + '&xsl=Lehrauftrag' + + '&xsl_oe_kurzbz=etw' + + '&stg_kz=' + + '&uid=' + uid + + '&ss=' + studiensemester, '_parent' + ); +} + +function footer_downloadPDF_LehrauftraegeLehrgaenge() { + var uid = $("#uid").val(); + var studiensemester = $('#studiensemester').val(); + + window.open(APP_ROOT + '/cis/private/pdfExport.php' + + '?xml=lehrauftrag.xml.php' + + '&xsl=Lehrauftrag' + + '&xsl_oe_kurzbz=lehrgang' + + '&stg_kz=' + + '&uid=' + uid + + '&ss=' + studiensemester, '_parent' + ); +} + /* * Performs select all * Select all (filtered) rows and ignore rows that are bestellt and erteilt diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php index 8d65f0a38..6c29f5f5a 100644 --- a/rdf/lehrauftrag.xml.php +++ b/rdf/lehrauftrag.xml.php @@ -31,6 +31,7 @@ require_once('../include/lehreinheit.class.php'); require_once('../include/organisationseinheit.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/bisverwendung.class.php'); +require_once('../include/person.class.php'); if (isset($_SERVER['REMOTE_USER'])) { @@ -65,6 +66,8 @@ if (isset($_GET['ss'])) else die('Fehlerhafte Parameteruebergabe'); +$xsl_oe_kurzbz = isset($_GET['xsl_oe_kurzbz']) && !empty($_GET['xsl_oe_kurzbz']) ? $_GET['xsl_oe_kurzbz'] : ''; + // GENERATE XML $xml = ''; $stg_arr = array(); @@ -149,6 +152,7 @@ function drawLehrauftrag($uid) { global $studiengang; global $studiengang_kz; + global $xsl_oe_kurzbz; global $oe_arr; global $stg_arr; global $ss; @@ -270,12 +274,31 @@ function drawLehrauftrag($uid) * FROM campus.vw_lehreinheit + JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid) + JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id) WHERE mitarbeiter_uid=".$db->db_add_param($uid)." - AND studiensemester_kurzbz=".$db->db_add_param($ss); + AND studiensemester_kurzbz=".$db->db_add_param($ss). " + AND lema.vertrag_id IS NOT NULL + AND vertragsstatus_kurzbz = 'akzeptiert'"; if ($studiengang_kz != '') //$studiengang_kz!='0' && - $qry .= "AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz); + { + $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz); + } + elseif (!empty($xsl_oe_kurzbz)) + { + if ($xsl_oe_kurzbz == 'etw') + { + $qry .= " AND lv_studiengang_kz > 0"; + } + + if ($xsl_oe_kurzbz == 'lehrgang') + { + $qry .= " AND lv_studiengang_kz <= 0"; + } + } + $qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id"; $lv = array(); $anzahl_lvs = 0; @@ -367,7 +390,7 @@ function drawLehrauftrag($uid) $gesamtstunden = $gesamtstunden + $stunden; } } - $qry = "SELECT tbl_projektarbeit.projektarbeit_id + $qry = "SELECT DISTINCT tbl_projektarbeit.projektarbeit_id ,tbl_projektbetreuer.faktor ,tbl_projektbetreuer.stunden ,tbl_projektbetreuer.stundensatz @@ -385,7 +408,10 @@ function drawLehrauftrag($uid) ,public.tbl_benutzer ,lehre.tbl_projektarbeit ,campus.vw_student + ,lehre.tbl_vertrag_vertragsstatus WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id + AND tbl_projektbetreuer.vertrag_id IS NOT NULL + AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = 'akzeptiert' AND tbl_benutzer.uid = ".$db->db_add_param($uid)." AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id AND student_uid = vw_student.uid From e272975a17c8d81f30ce744f1ed5dc89323d7b85 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 30 Mar 2020 19:10:59 +0200 Subject: [PATCH 2/4] Changed / Adapted Dropdown PDF Download for Lehrauftraege Changed: GUI. Now using Dropup button instead of 2 single buttons to give clarity and ability to add more pdf download in a single point. Adapted: GUI and JS now adapted to newer GUI version (after merging column picker branch into feature branch) --- .../lehre/lehrauftrag/acceptLehrauftrag.php | 18 +- .../js/lehre/lehrauftrag/acceptLehrauftrag.js | 24 + rdf/lehrauftrag.xml.php | 30 +- rdf/lehrauftrag_annehmen.xml.php | 514 ++++++++++++++++++ 4 files changed, 556 insertions(+), 30 deletions(-) create mode 100644 rdf/lehrauftrag_annehmen.xml.php diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index c4bbabb4c..170796c10 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -119,7 +119,7 @@ $this->load->view(
-
+
-
+ + +
+
+ + +
+
+ +
diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index b8d6e888c..8ea2df17c 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -7,6 +7,7 @@ // ----------------------------------------------------------------------------------------------------------------- // Global vars // ----------------------------------------------------------------------------------------------------------------- +const APP_ROOT = FHC_JS_DATA_STORAGE_OBJECT.app_root; const COLOR_LIGHTGREY = "#f5f5f5"; @@ -498,6 +499,29 @@ $(function() { $(this).addClass('focus').addClass('active'); }); + // Performs download PDF accepted Lehrauftraege + $("#ul-download-pdf").on('click', 'li', function(){ + var uid = $("#uid").val(); + var studiensemester = $('#studiensemester').val(); + + if ($(this).attr('value') != null && $(this).attr('value') != '') + { + var selected = $(this).attr('value'); + + if (selected == 'etw' || selected == 'lehrgang') + { + window.open(APP_ROOT + 'cis/private/pdfExport.php' + + '?xml=lehrauftrag_annehmen.xml.php' + + '&xsl=Lehrauftrag' + + '&xsl_oe_kurzbz=' + selected + + '&stg_kz=' + + '&uid=' + uid + + '&ss=' + studiensemester, '_parent' + ); + } + } + }); + // Redraw table stornierte lehrauftraege on button click $('#collapseCancelledLehrauftraege').on('shown.bs.collapse', function () { $('[tableuniqueid = cancelledLehrauftrag] #tableWidgetTabulator').tabulator('redraw', true); diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php index 6c29f5f5a..b4e90101e 100644 --- a/rdf/lehrauftrag.xml.php +++ b/rdf/lehrauftrag.xml.php @@ -31,7 +31,6 @@ require_once('../include/lehreinheit.class.php'); require_once('../include/organisationseinheit.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/bisverwendung.class.php'); -require_once('../include/person.class.php'); if (isset($_SERVER['REMOTE_USER'])) { @@ -66,8 +65,6 @@ if (isset($_GET['ss'])) else die('Fehlerhafte Parameteruebergabe'); -$xsl_oe_kurzbz = isset($_GET['xsl_oe_kurzbz']) && !empty($_GET['xsl_oe_kurzbz']) ? $_GET['xsl_oe_kurzbz'] : ''; - // GENERATE XML $xml = ''; $stg_arr = array(); @@ -152,7 +149,6 @@ function drawLehrauftrag($uid) { global $studiengang; global $studiengang_kz; - global $xsl_oe_kurzbz; global $oe_arr; global $stg_arr; global $ss; @@ -274,31 +270,12 @@ function drawLehrauftrag($uid) * FROM campus.vw_lehreinheit - JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid) - JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id) WHERE mitarbeiter_uid=".$db->db_add_param($uid)." - AND studiensemester_kurzbz=".$db->db_add_param($ss). " - AND lema.vertrag_id IS NOT NULL - AND vertragsstatus_kurzbz = 'akzeptiert'"; + AND studiensemester_kurzbz=".$db->db_add_param($ss); if ($studiengang_kz != '') //$studiengang_kz!='0' && - { $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz); - } - elseif (!empty($xsl_oe_kurzbz)) - { - if ($xsl_oe_kurzbz == 'etw') - { - $qry .= " AND lv_studiengang_kz > 0"; - } - - if ($xsl_oe_kurzbz == 'lehrgang') - { - $qry .= " AND lv_studiengang_kz <= 0"; - } - } - $qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id"; $lv = array(); $anzahl_lvs = 0; @@ -390,7 +367,7 @@ function drawLehrauftrag($uid) $gesamtstunden = $gesamtstunden + $stunden; } } - $qry = "SELECT DISTINCT tbl_projektarbeit.projektarbeit_id + $qry = "SELECT tbl_projektarbeit.projektarbeit_id ,tbl_projektbetreuer.faktor ,tbl_projektbetreuer.stunden ,tbl_projektbetreuer.stundensatz @@ -408,10 +385,7 @@ function drawLehrauftrag($uid) ,public.tbl_benutzer ,lehre.tbl_projektarbeit ,campus.vw_student - ,lehre.tbl_vertrag_vertragsstatus WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id - AND tbl_projektbetreuer.vertrag_id IS NOT NULL - AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = 'akzeptiert' AND tbl_benutzer.uid = ".$db->db_add_param($uid)." AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id AND student_uid = vw_student.uid diff --git a/rdf/lehrauftrag_annehmen.xml.php b/rdf/lehrauftrag_annehmen.xml.php new file mode 100644 index 000000000..415e3a239 --- /dev/null +++ b/rdf/lehrauftrag_annehmen.xml.php @@ -0,0 +1,514 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/* Erstellt einen Lehrauftrag im PDF Format + * + * Erstellt ein XML File fuer den Lehrauftrag + */ +require_once('../config/vilesci.config.inc.php'); +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/organisationseinheit.class.php'); +require_once('../include/mitarbeiter.class.php'); +require_once('../include/bisverwendung.class.php'); +require_once('../include/person.class.php'); + +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')) + die('Sie haben keine Berechtigung fuer diese Seite'); +} + +// header für no cache +header("Cache-Control: no-cache"); +header("Cache-Control: post-check=0, pre-check=0",false); +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/xhtml+xml"); + +//Parameter holen +if (isset($_GET['uid'])) + $uid = $_GET['uid']; +else + $uid = null; + +if (isset($_GET['stg_kz'])) + $studiengang_kz = $_GET['stg_kz']; +else + die('Fehlerhafte Parameteruebergabe'); +if (isset($_GET['ss'])) + $ss = $_GET['ss']; +else + die('Fehlerhafte Parameteruebergabe'); + +$xsl_oe_kurzbz = isset($_GET['xsl_oe_kurzbz']) && !empty($_GET['xsl_oe_kurzbz']) ? $_GET['xsl_oe_kurzbz'] : ''; + +// GENERATE XML +$xml = ''; +$stg_arr = array(); +$studiengang = new studiengang(); +$studiengang->getAll(null, false); + +foreach ($studiengang->result as $row) + $stg_arr[$row->studiengang_kz] = $row->kuerzel; + +//Studiengang laden +$studiengang = new studiengang($studiengang_kz); + +//Organisationseinheiten laden +$oe_arr = array(); +$organisationseinheit_obj = new organisationseinheit(); +$organisationseinheit_obj->getAll(); +foreach ($organisationseinheit_obj->result as $oe) +{ + $oe_arr[$oe->oe_kurzbz] = $oe->bezeichnung; +} + +//Studiengangsleiter holen +$stgl = ''; +$db = new basis_db(); +if ($studiengang_kz != '') +{ + $studiengang_obj = new studiengang(); + $stgleiter = $studiengang_obj->getLeitung($studiengang_kz); + + foreach ($stgleiter as $stgleiter_uid) + { + $row = new mitarbeiter($stgleiter_uid); + $stgl .= trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost); + } +} + +if ($uid == null) +{ + $qry = " + SELECT + distinct mitarbeiter_uid + FROM ( + SELECT + tbl_lehreinheitmitarbeiter.mitarbeiter_uid + FROM + lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung + WHERE + tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." + UNION + SELECT + tbl_benutzer.uid as mitarbeiter_uid + 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 + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND + student_uid=vw_student.uid AND + tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND + tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND + tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND + tbl_projektbetreuer.stunden!='0' + ) as mitarbeiter ORDER BY mitarbeiter_uid"; + + if ($db->db_query($qry)) + { + while ($row = $db->db_fetch_object()) + { + drawLehrauftrag($row->mitarbeiter_uid); + } + } +} +else + drawLehrauftrag($uid); + +function drawLehrauftrag($uid) +{ + global $studiengang; + global $studiengang_kz; + global $xsl_oe_kurzbz; + global $oe_arr; + global $stg_arr; + global $ss; + global $xml; + global $stgl; + + $db = new basis_db(); + + $xml.=' + typ=='d') + { + $xml.= 'Diplom-'; + $typ = 'Diplom'; + } + elseif ($studiengang->typ=='m') + { + $xml.= 'Master-'; + $typ = 'Master'; + } + elseif ($studiengang->typ=='b') + { + $xml.= 'Bachelor-'; + $typ = 'Bachelor'; + } + + $xml.= 'Studiengang '.$studiengang->bezeichnung.']]>'; + $xml.= 'bezeichnung. ']]>'; + $xml.= 'english. ']]>'; + $xml.= ''; + + //Studiensemester + if (substr($ss,0,2) == 'WS') + $studiensemester = 'Wintersemester '.substr($ss,2); + else + $studiensemester = 'Sommersemester '.substr($ss,2); + $xml .= ' + '; + + //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"; + + if ($result = $db->db_query($qry)) + { + if ($row = $db->db_fetch_object($result)) + { + $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)) + { + 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; + } + } + } + + if (!$firmenanschrift) + { + $strasse = $row->strasse; + $plz = $row->plz; + $ort = $row->ort; + $name_gesamt = trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost); + $zuhanden=''; + } + // Lädt die letzte (aktuellste) Verwendungen eines Mitarbeiters um die inkludierte Lehre auslesen zu können + $bis = new bisverwendung(); + $bis->getLastAktVerwendung($uid); + + $xml .= ' + + titelpre.']]> + vorname.']]> + nachname.']]> + titelpost.']]> + + + + + + svnr.']]> + personalnummer.']]> + inkludierte_lehre.']]> + '; + } + } + + //Lehreinheiten + $qry = " + SELECT + * + FROM + campus.vw_lehreinheit + JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid) + JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id) + WHERE + mitarbeiter_uid=".$db->db_add_param($uid)." + AND studiensemester_kurzbz=".$db->db_add_param($ss). " + AND lema.vertrag_id IS NOT NULL + AND vertragsstatus_kurzbz = 'akzeptiert'"; + + if ($studiengang_kz != '') //$studiengang_kz!='0' && + { + $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz); + } + elseif (!empty($xsl_oe_kurzbz)) + { + if ($xsl_oe_kurzbz == 'etw') + { + $qry .= " AND lv_studiengang_kz > 0"; + } + + if ($xsl_oe_kurzbz == 'lehrgang') + { + $qry .= " AND lv_studiengang_kz <= 0"; + } + } + + $qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id"; + $lv = array(); + $anzahl_lvs = 0; + if ($result = $db->db_query($qry)) + { + $last_le = ''; + $gesamtkosten = 0; + $gesamtstunden = 0; + $gruppen = array(); + $grp = ''; + $gruppen_getrennt = ''; + $einzelgruppe = ''; + while ($row = $db->db_fetch_object($result)) + { + if ($last_le != $row->lehreinheit_id && $last_le != '') + { + array_unique($gruppen); + sort($gruppen); + foreach ($gruppen as $gruppe) + { + $grp .= $gruppe.' '; + $gruppen_getrennt .= ''; + } + $einzelgruppe = $gruppen_getrennt; + $lv[$anzahl_lvs]['lehreinheit_id'] = $lehreinheit_id; + $lv[$anzahl_lvs]['lehrveranstaltung'] = $lehrveranstaltung; + $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:' '); + $anzahl_lvs++; + + $gesamtkosten = $gesamtkosten + $brutto; + $gesamtstunden = $gesamtstunden + $stunden; + + $lehreinheit_id = ''; + $lehrveranstaltung = ''; + $lehrfach_oe_kurzbz = ''; + $gruppen = array(); + $stunden = ''; + $satz = ''; + $faktor = ''; + $brutto = ''; + $grp = ''; + $gruppen_getrennt = ''; + } + + $lehreinheit_id = $row->lehreinheit_id; + $lehrveranstaltung = CutString($row->lv_bezeichnung, 30, '...').' '.$row->lehrform_kurzbz.' '.$row->lv_semester.'. Semester'; + $lehrfach_oe_kurzbz = $row->lehrfach_oe_kurzbz; + + if ($row->gruppe_kurzbz != '') + $gruppen[] = $row->gruppe_kurzbz; + else + $gruppen[] = trim($stg_arr[$row->studiengang_kz].'-'.$row->semester.$row->verband.$row->gruppe).' '; + + $stunden = $row->semesterstunden; + $satz = $row->stundensatz; + $faktor = $row->faktor; + $brutto = $row->semesterstunden * $row->stundensatz; + $last_le = $row->lehreinheit_id; + } + array_unique($gruppen); + sort($gruppen); + foreach ($gruppen as $gruppe) + { + $grp .= $gruppe.' '; + $gruppen_getrennt .= ''; + } + 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($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:' '); + $lv[$anzahl_lvs]['faktor'] = (isset($faktor)?$faktor:' '); + $lv[$anzahl_lvs]['brutto'] = (isset($brutto)?number_format($brutto,2,',','.'):' '); + $lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' '); + $anzahl_lvs++; + + if (isset($brutto)) + $gesamtkosten = $gesamtkosten + $brutto; + if (isset($stunden)) + $gesamtstunden = $gesamtstunden + $stunden; + } + } + $qry = "SELECT DISTINCT tbl_projektarbeit.projektarbeit_id + ,tbl_projektbetreuer.faktor + ,tbl_projektbetreuer.stunden + ,tbl_projektbetreuer.stundensatz + ,tbl_lehrveranstaltung.semester + ,vorname + ,nachname + ,vw_student.studiengang_kz + ,projekttyp_kurzbz + ,lehrfach.oe_kurzbz + FROM lehre.tbl_projektbetreuer + ,lehre.tbl_lehreinheit + ,lehre.tbl_lehrveranstaltung AS lehrfach + ,lehre.tbl_lehrveranstaltung + ,public.tbl_organisationseinheit + ,public.tbl_benutzer + ,lehre.tbl_projektarbeit + ,campus.vw_student + ,lehre.tbl_vertrag_vertragsstatus + WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id + AND tbl_projektbetreuer.vertrag_id IS NOT NULL + AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = 'akzeptiert' + AND tbl_benutzer.uid = ".$db->db_add_param($uid)." + AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id + AND student_uid = vw_student.uid + AND tbl_organisationseinheit.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz + AND tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id + 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); + } + elseif (!empty($xsl_oe_kurzbz)) + { + if ($xsl_oe_kurzbz == 'etw') + { + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz > 0"; + } + + if ($xsl_oe_kurzbz == 'lehrgang') + { + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz <= 0"; + } + } + + if ($result = $db->db_query($qry)) + { + while ($row = $db->db_fetch_object($result)) + { + $stg = new studiengang(); + $stg->load($row->studiengang_kz); + $stg_kuerzel = $stg->kuerzel; + + $brutto = $row->stunden * $row->stundensatz; + if ($row->stunden != 0) + { + 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; + } + + $lv[$anzahl_lvs]['lehreinheit_id'] = (isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:' '); + $lv[$anzahl_lvs]['lehrveranstaltung'] = 'Betreuung '.$row->vorname.' '.$row->nachname; + $lv[$anzahl_lvs]['fachbereich'] = (isset($row->oe_kurzbz) && array_key_exists($row->oe_kurzbz, $oe_arr)?$oe_arr[$row->oe_kurzbz]:' '); + $lv[$anzahl_lvs]['gruppe'] = ' '; + $lv[$anzahl_lvs]['stunden'] = (isset($row->stunden)?number_format($row->stunden,2):' '); + $lv[$anzahl_lvs]['satz'] = (isset($row->stundensatz)?$row->stundensatz:' '); + $lv[$anzahl_lvs]['faktor'] = (isset($row->faktor)?$row->faktor:''); + $lv[$anzahl_lvs]['brutto'] = (isset($brutto)?number_format($brutto,2,',','.'):' '); + $lv[$anzahl_lvs]['einzelgruppe'] = 'semester.']]>'; + $anzahl_lvs++; + + $gesamtkosten = $gesamtkosten + $brutto; + $gesamtstunden = $gesamtstunden + $row->stunden; + } + } + } + + + + foreach ($lv as $lv_row) + { + $xml .= ' + + + + + + '. $lv_row['einzelgruppe']. ' + + + + + '; + }; + + // Gesamtstunden und Gesamtkosten + $xml .= " + + "; + + + $xml .= " + "; + + $xml .= ' + + + '; +} + +// END GENERATE XML +echo $xml.''; + +?> From 2938e0bdb06e4d14b46c1a60cf9475d6198181a3 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 30 Mar 2020 19:27:12 +0200 Subject: [PATCH 3/4] Bugfixed: Removed undefined functions After moving functions to Tablewidget.js, these function calls doesnt exist anymore in the earlier corresponding javascripts. Therefore they must be removed. --- application/views/lehre/lehrauftrag/acceptLehrauftragData.php | 3 --- application/views/lehre/lehrauftrag/approveLehrauftragData.php | 3 --- application/views/lehre/lehrauftrag/orderLehrauftragData.php | 3 --- 3 files changed, 9 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index af864dd51..4fe41a8a4 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -340,9 +340,6 @@ $filterWidgetArray = array( rowUpdated:function(row){ func_rowUpdated(row); }, - rowSelectionChanged:function(data, rows){ - func_rowSelectionChanged(data, rows); - }, rowFormatter:function(row){ func_rowFormatter(row); }, diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index 0fb1bfc7e..b359defaa 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -359,9 +359,6 @@ $filterWidgetArray = array( rowUpdated:function(row){ func_rowUpdated(row); }, - rowSelectionChanged:function(data, rows){ - func_rowSelectionChanged(data, rows); - }, rowFormatter:function(row) { func_rowFormatter(row); diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index 4f605277b..4a857b4b5 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -393,9 +393,6 @@ $filterWidgetArray = array( rowUpdated:function(row){ func_rowUpdated(row); }, - rowSelectionChanged:function(data, rows){ - func_rowSelectionChanged(data, rows); - }, rowFormatter:function(row){ func_rowFormatter(row); }, From 0aef62913459db86a345c13d3c053ab8750a8795 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 31 Mar 2020 11:57:46 +0200 Subject: [PATCH 4/4] Adapted SQL query for Projektbetreuungen --- rdf/lehrauftrag_annehmen.xml.php | 60 +++++++++++++++----------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/rdf/lehrauftrag_annehmen.xml.php b/rdf/lehrauftrag_annehmen.xml.php index 415e3a239..c0f691fe3 100644 --- a/rdf/lehrauftrag_annehmen.xml.php +++ b/rdf/lehrauftrag_annehmen.xml.php @@ -390,36 +390,32 @@ function drawLehrauftrag($uid) $gesamtstunden = $gesamtstunden + $stunden; } } - $qry = "SELECT DISTINCT tbl_projektarbeit.projektarbeit_id - ,tbl_projektbetreuer.faktor - ,tbl_projektbetreuer.stunden - ,tbl_projektbetreuer.stundensatz - ,tbl_lehrveranstaltung.semester - ,vorname - ,nachname - ,vw_student.studiengang_kz - ,projekttyp_kurzbz - ,lehrfach.oe_kurzbz - FROM lehre.tbl_projektbetreuer - ,lehre.tbl_lehreinheit - ,lehre.tbl_lehrveranstaltung AS lehrfach - ,lehre.tbl_lehrveranstaltung - ,public.tbl_organisationseinheit - ,public.tbl_benutzer - ,lehre.tbl_projektarbeit - ,campus.vw_student - ,lehre.tbl_vertrag_vertragsstatus - WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id - AND tbl_projektbetreuer.vertrag_id IS NOT NULL - AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = 'akzeptiert' - AND tbl_benutzer.uid = ".$db->db_add_param($uid)." - AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id - AND student_uid = vw_student.uid - AND tbl_organisationseinheit.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz - AND tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id - 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"; + $qry = 'SELECT + pa.projektarbeit_id, + pb.faktor, + pb.stunden, + pb.stundensatz, + lv.semester, + vorname, + nachname, + student.studiengang_kz, + projekttyp_kurzbz, + lv.oe_kurzbz, + vertragsstatus_kurzbz + FROM lehre.tbl_projektbetreuer pb + JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id) + JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id) + JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id) + JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz) + JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id + JOIN campus.vw_student student ON pa.student_uid = student.uid + LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id) + LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id) + WHERE pb.vertrag_id IS NOT NULL + AND vvst.vertragsstatus_kurzbz = \'akzeptiert\' + AND benutzer.uid = '.$db->db_add_param($uid).' + AND le.studiensemester_kurzbz = '.$db->db_add_param($ss); + if ($studiengang_kz != '') { $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); @@ -428,12 +424,12 @@ function drawLehrauftrag($uid) { if ($xsl_oe_kurzbz == 'etw') { - $qry .= " AND tbl_lehrveranstaltung.studiengang_kz > 0"; + $qry .= " AND lv.studiengang_kz > 0"; } if ($xsl_oe_kurzbz == 'lehrgang') { - $qry .= " AND tbl_lehrveranstaltung.studiengang_kz <= 0"; + $qry .= " AND lv.studiengang_kz <= 0"; } }