From 4101929cd51cb7a80749b60ac6fca98e7e0ccf83 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Fri, 15 Oct 2021 12:57:18 +0200 Subject: [PATCH 1/4] stammkostenstelle anzeigen bei fixangestellten / fallback falls keine eingetragen ist --- .../statistik/lehrauftragsliste_mail.xls.php | 84 +++++++++++++++++-- 1 file changed, 76 insertions(+), 8 deletions(-) diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index 853be72fe..1342e9e50 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -30,6 +30,8 @@ require_once('../../include/Excel/excel.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/mail.class.php'); +require_once('../../include/benutzerfunktion.class.php'); +require_once('../../include/organisationseinheit.class.php'); $stsem = new studiensemester(); @@ -124,6 +126,10 @@ $workbook->setCustomColor(10, 255, 186, 179); $format_colored =& $workbook->addFormat(); $format_colored->setFgColor(10); +$workbook->setCustomColor(10, 238, 238, 0); +$oe_colored =& $workbook->addFormat(); +$oe_colored->setFgColor(10); + $format_number_colored =& $workbook->addFormat(); $format_number_colored->setNumFormat('0,0.00'); //$format_number_colored->setNumFormat('0.00'); @@ -209,7 +215,7 @@ if ($result_stg = $db->db_query($qry_stg)) SELECT tbl_organisationseinheit.organisationseinheittyp_kurzbz || ' ' || tbl_organisationseinheit.bezeichnung FROM PUBLIC.tbl_benutzerfunktion JOIN PUBLIC.tbl_organisationseinheit USING (oe_kurzbz) - WHERE funktion_kurzbz = 'oezuordnung' + WHERE funktion_kurzbz = (CASE WHEN fixangestellt = true THEN 'kstzuordnung' ELSE 'oezuordnung' END) AND ( datum_von IS NULL OR datum_von <= now() @@ -229,7 +235,7 @@ if ($result_stg = $db->db_query($qry_stg)) WHERE oe_kurzbz IN ( SELECT oe_kurzbz FROM PUBLIC.tbl_benutzerfunktion - WHERE funktion_kurzbz = 'oezuordnung' + WHERE funktion_kurzbz = (CASE WHEN fixangestellt = true THEN 'kstzuordnung' ELSE 'oezuordnung' END) AND ( datum_von IS NULL OR datum_von <= now() @@ -356,8 +362,20 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['vorname'] = $row->vorname; $liste[$row->mitarbeiter_uid]['nachname'] = $row->nachname; $liste[$row->mitarbeiter_uid]['fixangestellt'] = $row->fixangestellt; - $liste[$row->mitarbeiter_uid]['oezuordnung'] = $row->oezuordnung; - $liste[$row->mitarbeiter_uid]['department'] = $row->department; + + if (is_null($row->oezuordnung)) + { + $oeInfos = getOe($row->mitarbeiter_uid, $row->fixangestellt); + $liste[$row->mitarbeiter_uid]['oezuordnung'] = $oeInfos['oezuordnung']; + $liste[$row->mitarbeiter_uid]['department'] = $oeInfos['department']; + $liste[$row->mitarbeiter_uid]['organisationgeaendert'] = $oeInfos['organisationgeaendert']; + } + else + { + $liste[$row->mitarbeiter_uid]['oezuordnung'] = $row->oezuordnung; + $liste[$row->mitarbeiter_uid]['department'] = $row->department; + } + $liste[$row->mitarbeiter_uid]['betreuergesamtstunden'] = 0; $liste[$row->mitarbeiter_uid]['betreuergesamtkosten'] = 0; if ($row->geaendert == 't') @@ -375,7 +393,7 @@ if ($result_stg = $db->db_query($qry_stg)) public.tbl_benutzerfunktion JOIN public.tbl_organisationseinheit USING (oe_kurzbz) WHERE - funktion_kurzbz='oezuordnung' + funktion_kurzbz = (CASE WHEN fixangestellt = true THEN 'kstzuordnung' ELSE 'oezuordnung' END) AND (datum_von IS NULL OR datum_von <= now()) AND (datum_bis IS NULL OR datum_bis >= now()) AND tbl_benutzerfunktion.uid = tbl_benutzer.uid @@ -390,7 +408,7 @@ if ($result_stg = $db->db_query($qry_stg)) WHERE oe_kurzbz IN ( SELECT oe_kurzbz FROM PUBLIC.tbl_benutzerfunktion - WHERE funktion_kurzbz = 'oezuordnung' + WHERE funktion_kurzbz = (CASE WHEN fixangestellt = true THEN 'kstzuordnung' ELSE 'oezuordnung' END) AND ( datum_von IS NULL OR datum_von <= now() @@ -461,8 +479,20 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->uid]['vorname'] = $row->vorname; $liste[$row->uid]['nachname'] = $row->nachname; $liste[$row->uid]['fixangestellt'] = $row->fixangestellt; - $liste[$row->uid]['oezuordnung'] = $row->oezuordnung; - $liste[$row->uid]['department'] = $row->department; + + if (is_null($row->oezuordnung)) + { + $oeInfos = getOe($row->uid, $row->fixangestellt); + $liste[$row->uid]['oezuordnung'] = $oeInfos['oezuordnung']; + $liste[$row->uid]['department'] = $oeInfos['department']; + $liste[$row->uid]['organisationgeaendert'] = $oeInfos['organisationgeaendert']; + } + else + { + $liste[$row->uid]['oezuordnung'] = $row->oezuordnung; + $liste[$row->uid]['department'] = $row->department; + } + $liste[$row->uid]['geaendert'] = false; $liste[$row->uid]['gesamtstunden'] = 0; $liste[$row->uid]['gesamtkosten'] = 0; @@ -560,6 +590,11 @@ if ($result_stg = $db->db_query($qry_stg)) $format = $format_colored; $formatnb = $format_number_colored; } + else if(isset($row['organisationgeaendert']) && $row['organisationgeaendert'] === true) + { + $format = $oe_colored; + $formatnb = $format_number; + } else { $format = $format_normal; @@ -745,3 +780,36 @@ if ($result_stg = $db->db_query($qry_stg)) else echo "Fehler beim Versenden der Lehrauftragsliste"; } + +function getOe($mitarbeiter_uid, $fixangestellt) +{ + $benutzerfunktion = new Benutzerfunktion(); + $oe = new Organisationseinheit(); + + $benutzerfunktion->getBenutzerFunktionByUid($mitarbeiter_uid, $fixangestellt === 'Ja' ? 'kstzuordnung' : 'oezuordnung', date('Y-m-d')); + + if (isset($benutzerfunktion->result[0])) + { + array_multisort(array_column($benutzerfunktion->result, 'datum_von'), SORT_ASC, $benutzerfunktion->result); + } + else + { + $benutzerfunktion->getBenutzerFunktionByUid($mitarbeiter_uid, $fixangestellt === 'Ja' ? 'kstzuordnung' : 'oezuordnung', null, date('Y-m-d')); + array_multisort(array_column($benutzerfunktion->result, 'datum_bis'), SORT_DESC, $benutzerfunktion->result); + } + + if (!isset($benutzerfunktion->result[0])) + return array('oezuordnung' => '', 'department' => '', 'organisationgeaendert' => false); + + $oe->load($benutzerfunktion->result[0]->oe_kurzbz); + $oezuordnung = $oe->organisationseinheittyp_kurzbz . ' ' . $oe->bezeichnung; + + $oe_parents = $oe->getParents_withOEType($oe->oe_kurzbz); + + if (is_array($oe_parents)) + $department = ($oe_parents[array_search('Department', array_column($oe_parents, 'oe_typ_bezeichnung'))]->oe_bezeichnung); + else + $department = ''; + + return array('oezuordnung' => $oezuordnung, 'department' => $department, 'organisationgeaendert' => true); +} \ No newline at end of file From c3ff32a9d656c009a9917b8662a9ff96fa793eb5 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 7 Nov 2022 11:16:27 +0100 Subject: [PATCH 2/4] - unterschiedliche farbmarkierungen hinzugefuegt --- .../statistik/lehrauftragsliste_mail.xls.php | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index 1342e9e50..45d7ed626 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -128,7 +128,7 @@ $format_colored->setFgColor(10); $workbook->setCustomColor(10, 238, 238, 0); $oe_colored =& $workbook->addFormat(); -$oe_colored->setFgColor(10); +$oe_colored->setFgColor(11); $format_number_colored =& $workbook->addFormat(); $format_number_colored->setNumFormat('0,0.00'); @@ -588,18 +588,20 @@ if ($result_stg = $db->db_query($qry_stg)) if (isset($row['geaendert']) && $row['geaendert'] == true) { $format = $format_colored; + $formatOE = $format_colored; $formatnb = $format_number_colored; } - else if(isset($row['organisationgeaendert']) && $row['organisationgeaendert'] === true) - { - $format = $oe_colored; - $formatnb = $format_number; - } else { $format = $format_normal; + $formatOE = $format_normal; $formatnb = $format_number; } + + if(isset($row['organisationgeaendert']) && $row['organisationgeaendert'] === true) + { + $formatOE = $oe_colored; + } //Studiengang $worksheet->write($zeile, $i, $studiengang->kuerzel, $format); $gesamt->write($gesamtsheet_row, $i, $studiengang->kuerzel, $format); @@ -619,11 +621,11 @@ if ($result_stg = $db->db_query($qry_stg)) $worksheet->write($zeile, ++$i, $row['fixangestellt'], $format); $gesamt->write($gesamtsheet_row, $i, $row['fixangestellt'], $format); //OE-Zuordnung - $worksheet->write($zeile, ++$i, $row['oezuordnung'], $format); - $gesamt->write($gesamtsheet_row, $i, $row['oezuordnung'], $format); + $worksheet->write($zeile, ++$i, $row['oezuordnung'], $formatOE); + $gesamt->write($gesamtsheet_row, $i, $row['oezuordnung'], $formatOE); //Department der OE-Zuordnung - $worksheet->write($zeile, ++$i, $row['department'], $format); - $gesamt->write($gesamtsheet_row, $i, $row['department'], $format); + $worksheet->write($zeile, ++$i, $row['department'], $formatOE); + $gesamt->write($gesamtsheet_row, $i, $row['department'], $formatOE); //LVStunden $lvstunden = str_replace(', ', '.', $row['lvstunden']); $worksheet->write($zeile, ++$i, $lvstunden, $format); From e26ba1d219459b626d58bac02cd2de5db179aad0 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 12 Jun 2023 09:22:32 +0200 Subject: [PATCH 3/4] - spalte gesamtstunden erteilt hinzugefuegt --- .../statistik/lehrauftragsliste_mail.xls.php | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index 45d7ed626..24f6ec208 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -195,6 +195,10 @@ if ($result_stg = $db->db_query($qry_stg)) $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden angenommen", $format_bold); $worksheet->write(2, ++$i, "Gesamtkosten angenommen", $format_bold); $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten angenommen", $format_bold); + $worksheet->write(2, ++$i, "Gesamtstunden erteilt", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden erteilt", $format_bold); + $worksheet->write(2, ++$i, "Gesamtkosten erteilt", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten erteilt", $format_bold); //Daten holen $qry = "SELECT tbl_lehreinheit.*, @@ -325,6 +329,12 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; } + + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'])) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] = 0; + } if ($row->vertragsstatus == 'akzeptiert') { @@ -334,6 +344,14 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] + ($row->semesterstunden * $row->stundensatz); } + else if ($row->vertragsstatus == 'erteilt') + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] + + ($row->semesterstunden * $row->stundensatz); + } } else { @@ -347,6 +365,12 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; } + + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'])) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] = 0; + } if ($row->vertragsstatus == 'akzeptiert') { @@ -356,6 +380,14 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] + ($row->semesterstunden * $row->stundensatz); } + else if ($row->vertragsstatus == 'erteilt') + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] + + ($row->semesterstunden * $row->stundensatz); + } } $liste[$row->mitarbeiter_uid]['personalnummer'] = $row->personalnummer; $liste[$row->mitarbeiter_uid]['titelpre'] = $row->titelpre; @@ -559,6 +591,12 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$uid]['gesamtstunden_akzeptiert'] = 0; $liste[$uid]['gesamtkosten_akzeptiert'] = 0; } + + if (!isset($liste[$uid]['gesamtstunden_erteilt'])) + { + $liste[$uid]['gesamtstunden_erteilt'] = 0; + $liste[$uid]['gesamtkosten_erteilt'] = 0; + } if ($row->vertragsstatus == 'akzeptiert') { @@ -567,6 +605,13 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$uid]['gesamtkosten_akzeptiert'] = $liste[$uid]['gesamtkosten_akzeptiert'] + ($row->stunden * $row->stundensatz); } + else if ($row->vertragsstatus == 'erteilt') + { + $liste[$uid]['gesamtstunden_erteilt'] = + $liste[$uid]['gesamtstunden_erteilt'] + $row->stunden; + $liste[$uid]['gesamtkosten_erteilt'] = + $liste[$uid]['gesamtkosten_erteilt'] + ($row->stunden * $row->stundensatz); + } } } } @@ -658,6 +703,14 @@ if ($result_stg = $db->db_query($qry_stg)) $gesamtkosten_akzeptiert_row = str_replace(', ', '.', $row['gesamtkosten_akzeptiert']); $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_akzeptiert_row, $formatnb); $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_akzeptiert_row, $formatnb); + //Gesamtstunden erteilt + $gesamtstunden_erteilt = str_replace(', ', '.', $row['gesamtstunden_erteilt']); + $worksheet->write($zeile, ++$i, $gesamtstunden_erteilt, $formatnb); + $gesamt->write($gesamtsheet_row, $i, $gesamtstunden_erteilt, $formatnb); + //Gesamtkosten erteilt + $gesamtkosten_erteilt_row = str_replace(', ', '.', $row['gesamtkosten_erteilt']); + $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_erteilt_row, $formatnb); + $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_erteilt_row, $formatnb); //Kosten zu den Gesamtkosten hinzurechnen $gesamtkosten = $gesamtkosten + $row['gesamtkosten']; @@ -687,6 +740,16 @@ if ($result_stg = $db->db_query($qry_stg)) $liste_gesamt[$uid]['gesamtkosten_akzeptiert'] += $row['gesamtkosten_akzeptiert']; else $liste_gesamt[$uid]['gesamtkosten_akzeptiert'] = $row['gesamtkosten_akzeptiert']; + + if (isset($liste_gesamt[$uid]['gesamtstunden_erteilt'])) + $liste_gesamt[$uid]['gesamtstunden_erteilt'] += $row['gesamtstunden_erteilt']; + else + $liste_gesamt[$uid]['gesamtstunden_erteilt'] = $row['gesamtstunden_erteilt']; + + if (isset($liste_gesamt[$uid]['gesamtkosten_erteilt'])) + $liste_gesamt[$uid]['gesamtkosten_erteilt'] += $row['gesamtkosten_erteilt']; + else + $liste_gesamt[$uid]['gesamtkosten_erteilt'] = $row['gesamtkosten_erteilt']; } //Gesamtkosten anzeigen From 533291bf3305e9456d8d1bb73e70511e095265cb Mon Sep 17 00:00:00 2001 From: ma0048 Date: Tue, 11 Jul 2023 14:17:51 +0200 Subject: [PATCH 4/4] - bug fix - neue sortierung - neue spalte - sqls abfragen angepasst --- .../statistik/lehrauftragsliste_mail.xls.php | 261 +++++++++++------- 1 file changed, 162 insertions(+), 99 deletions(-) diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index 24f6ec208..b4ee093b7 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -98,12 +98,11 @@ $qry_stg = "SELECT distinct studiengang_kz, typ, kurzbz SELECT studiengang_kz FROM - lehre.tbl_projektbetreuer, lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung + lehre.tbl_projektbetreuer JOIN lehre.tbl_projektarbeit ON tbl_projektbetreuer.projektarbeit_id=tbl_projektarbeit.projektarbeit_id + JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id + JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id WHERE - lehre.tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - tbl_projektbetreuer.projektarbeit_id=tbl_projektarbeit.projektarbeit_id AND - tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id + lehre.tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." ) as foo JOIN public.tbl_studiengang USING (studiengang_kz) "; @@ -191,15 +190,22 @@ if ($result_stg = $db->db_query($qry_stg)) $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden", $format_bold); $worksheet->write(2, ++$i, "Gesamtkosten", $format_bold); $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten", $format_bold); - $worksheet->write(2, ++$i, "Gesamtstunden angenommen", $format_bold); - $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden angenommen", $format_bold); - $worksheet->write(2, ++$i, "Gesamtkosten angenommen", $format_bold); - $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten angenommen", $format_bold); + + $worksheet->write(2, ++$i, "Gesamtstunden bestellt", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden bestellt", $format_bold); + $worksheet->write(2, ++$i, "Gesamtkosten bestellt", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten bestellt", $format_bold); + $worksheet->write(2, ++$i, "Gesamtstunden erteilt", $format_bold); $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden erteilt", $format_bold); $worksheet->write(2, ++$i, "Gesamtkosten erteilt", $format_bold); $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten erteilt", $format_bold); + $worksheet->write(2, ++$i, "Gesamtstunden angenommen", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden angenommen", $format_bold); + $worksheet->write(2, ++$i, "Gesamtkosten angenommen", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten angenommen", $format_bold); + //Daten holen $qry = "SELECT tbl_lehreinheit.*, tbl_person.vorname, @@ -272,26 +278,20 @@ if ($result_stg = $db->db_query($qry_stg)) THEN 't' ELSE 'f' END AS geaendert, - (SELECT - vertragsstatus_kurzbz - FROM - lehre.tbl_vertrag_vertragsstatus - WHERE - vertrag_id = tbl_lehreinheitmitarbeiter.vertrag_id - ORDER BY datum DESC - LIMIT 1) as vertragsstatus - FROM lehre.tbl_lehreinheit, - lehre.tbl_lehreinheitmitarbeiter, - PUBLIC.tbl_mitarbeiter, - PUBLIC.tbl_benutzer, - PUBLIC.tbl_person, - lehre.tbl_lehrveranstaltung - WHERE tbl_person.person_id = tbl_benutzer.person_id - AND tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid - AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_mitarbeiter.mitarbeiter_uid - AND tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id - AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id - AND studiengang_kz = ".$db->db_add_param($studiengang_kz)." + (SELECT + ARRAY_TO_STRING(ARRAY_AGG(vertragsstatus_kurzbz), ',') + FROM + lehre.tbl_vertrag_vertragsstatus + WHERE + vertrag_id = tbl_lehreinheitmitarbeiter.vertrag_id + ) as vertragsstatus + FROM lehre.tbl_lehreinheit + JOIN lehre.tbl_lehreinheitmitarbeiter ON tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id + JOIN PUBLIC.tbl_mitarbeiter ON tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_mitarbeiter.mitarbeiter_uid + JOIN PUBLIC.tbl_benutzer ON tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid + JOIN PUBLIC.tbl_person ON tbl_person.person_id = tbl_benutzer.person_id + JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id + WHERE studiengang_kz = ".$db->db_add_param($studiengang_kz)." AND studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheitmitarbeiter.semesterstunden <> 0 AND tbl_lehreinheitmitarbeiter.semesterstunden IS NOT NULL @@ -312,6 +312,7 @@ if ($result_stg = $db->db_query($qry_stg)) $gesamtsheet_row++; while ($row = $db->db_fetch_object($result)) { + $row->vertragsstatus = explode(',', $row->vertragsstatus); //Gesamtstunden und Kosten ermitteln if (array_key_exists($row->mitarbeiter_uid, $liste)) { @@ -324,27 +325,34 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $liste[$row->mitarbeiter_uid]['gesamtkosten'] + ($row->semesterstunden * $row->stundensatz); - if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'])) + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_bestellt'])) { - $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; - $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtstunden_bestellt'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtkosten_bestellt'] = 0; } - + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'])) { $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] = 0; $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] = 0; } - if ($row->vertragsstatus == 'akzeptiert') + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'])) { - $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = - $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] + $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = - $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; + } + + if (in_array('bestellt', $row->vertragsstatus)) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_bestellt'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden_bestellt'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten_bestellt'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten_bestellt'] + ($row->semesterstunden * $row->stundensatz); } - else if ($row->vertragsstatus == 'erteilt') + + if (in_array('erteilt', $row->vertragsstatus)) { $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] = $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] + $row->semesterstunden; @@ -352,6 +360,15 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] + ($row->semesterstunden * $row->stundensatz); } + + if (in_array('akzeptiert', $row->vertragsstatus)) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] + + ($row->semesterstunden * $row->stundensatz); + } } else { @@ -360,27 +377,34 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $row->semesterstunden; $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden * $row->stundensatz; - if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'])) + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_bestellt'])) { - $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; - $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtstunden_bestellt'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtkosten_bestellt'] = 0; } - + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'])) { $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] = 0; $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] = 0; } - if ($row->vertragsstatus == 'akzeptiert') + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'])) { - $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = - $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] + $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = - $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; + } + + if (in_array('bestellt', $row->vertragsstatus)) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_bestellt'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden_bestellt'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten_bestellt'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten_bestellt'] + ($row->semesterstunden * $row->stundensatz); } - else if ($row->vertragsstatus == 'erteilt') + + if (in_array('erteilt', $row->vertragsstatus)) { $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] = $liste[$row->mitarbeiter_uid]['gesamtstunden_erteilt'] + $row->semesterstunden; @@ -388,6 +412,15 @@ if ($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['gesamtkosten_erteilt'] + ($row->semesterstunden * $row->stundensatz); } + + if (in_array('akzeptiert', $row->vertragsstatus)) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] + + ($row->semesterstunden * $row->stundensatz); + } } $liste[$row->mitarbeiter_uid]['personalnummer'] = $row->personalnummer; $liste[$row->mitarbeiter_uid]['titelpre'] = $row->titelpre; @@ -469,27 +502,23 @@ if ($result_stg = $db->db_query($qry_stg)) WHERE meine_oes.organisationseinheittyp_kurzbz = 'Department' ) AS department FROM - lehre.tbl_projektbetreuer, public.tbl_person, public.tbl_benutzer, - public.tbl_mitarbeiter, lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, - lehre.tbl_lehrveranstaltung + lehre.tbl_projektbetreuer JOIN public.tbl_person ON tbl_projektbetreuer.person_id=tbl_person.person_id + JOIN public.tbl_benutzer ON tbl_benutzer.person_id=tbl_person.person_id + JOIN public.tbl_mitarbeiter ON tbl_mitarbeiter.mitarbeiter_uid=tbl_benutzer.uid + JOIN lehre.tbl_projektarbeit ON tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id + JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id + JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id WHERE - tbl_projektbetreuer.person_id=tbl_person.person_id AND - tbl_person.person_id=tbl_benutzer.person_id AND - tbl_mitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND - tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND NOT EXISTS (SELECT mitarbeiter_uid FROM - lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung + lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit ON tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id + JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id WHERE mitarbeiter_uid=tbl_benutzer.uid AND - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND - tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null AND EXISTS ( @@ -550,32 +579,29 @@ if ($result_stg = $db->db_query($qry_stg)) ELSE 'f' END as geaendert, - ( - SELECT - vertragsstatus_kurzbz + (SELECT + ARRAY_TO_STRING(ARRAY_AGG(vertragsstatus_kurzbz), ',') FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id = tbl_projektbetreuer.vertrag_id - ORDER BY datum DESC - LIMIT 1 ) as vertragsstatus - FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, - public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student + FROM + lehre.tbl_projektbetreuer JOIN public.tbl_benutzer ON tbl_projektbetreuer.person_id = tbl_benutzer.person_id + JOIN lehre.tbl_projektarbeit ON tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id + JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id + JOIN lehre.tbl_lehrveranstaltung ON tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id + JOIN campus.vw_student ON vw_student.uid = student_uid WHERE - tbl_projektbetreuer.person_id = tbl_benutzer.person_id - 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_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id + tbl_benutzer.uid = ".$db->db_add_param($uid)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." - AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id 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)) { + $row->vertragsstatus = explode(',', $row->vertragsstatus); $liste[$uid]['gesamtstunden'] = $liste[$uid]['gesamtstunden'] + $row->stunden; $liste[$uid]['gesamtkosten'] = $liste[$uid]['gesamtkosten'] + ($row->stunden * $row->stundensatz); @@ -586,32 +612,48 @@ if ($result_stg = $db->db_query($qry_stg)) { $liste[$uid]['geaendert'] = true; } - if (!isset($liste[$uid]['gesamtstunden_akzeptiert'])) + + if (!isset($liste[$uid]['gesamtstunden_bestellt'])) { - $liste[$uid]['gesamtstunden_akzeptiert'] = 0; - $liste[$uid]['gesamtkosten_akzeptiert'] = 0; + $liste[$uid]['gesamtstunden_bestellt'] = 0; + $liste[$uid]['gesamtkosten_bestellt'] = 0; } - + if (!isset($liste[$uid]['gesamtstunden_erteilt'])) { $liste[$uid]['gesamtstunden_erteilt'] = 0; $liste[$uid]['gesamtkosten_erteilt'] = 0; } - if ($row->vertragsstatus == 'akzeptiert') + if (!isset($liste[$uid]['gesamtstunden_akzeptiert'])) { - $liste[$uid]['gesamtstunden_akzeptiert'] = - $liste[$uid]['gesamtstunden_akzeptiert'] + $row->stunden; - $liste[$uid]['gesamtkosten_akzeptiert'] = - $liste[$uid]['gesamtkosten_akzeptiert'] + ($row->stunden * $row->stundensatz); + $liste[$uid]['gesamtstunden_akzeptiert'] = 0; + $liste[$uid]['gesamtkosten_akzeptiert'] = 0; } - else if ($row->vertragsstatus == 'erteilt') + + if (in_array('bestellt', $row->vertragsstatus)) + { + $liste[$uid]['gesamtstunden_bestellt'] = + $liste[$uid]['gesamtstunden_bestellt'] + $row->stunden; + $liste[$uid]['gesamtkosten_bestellt'] = + $liste[$uid]['gesamtkosten_bestellt'] + ($row->stunden * $row->stundensatz); + } + + if (in_array('erteilt', $row->vertragsstatus)) { $liste[$uid]['gesamtstunden_erteilt'] = $liste[$uid]['gesamtstunden_erteilt'] + $row->stunden; $liste[$uid]['gesamtkosten_erteilt'] = $liste[$uid]['gesamtkosten_erteilt'] + ($row->stunden * $row->stundensatz); } + + if (in_array('akzeptiert', $row->vertragsstatus)) + { + $liste[$uid]['gesamtstunden_akzeptiert'] = + $liste[$uid]['gesamtstunden_akzeptiert'] + $row->stunden; + $liste[$uid]['gesamtkosten_akzeptiert'] = + $liste[$uid]['gesamtkosten_akzeptiert'] + ($row->stunden * $row->stundensatz); + } } } } @@ -695,14 +737,16 @@ if ($result_stg = $db->db_query($qry_stg)) $gesamtkosten_row = str_replace(', ', '.', $row['gesamtkosten']); $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_row, $formatnb); $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_row, $formatnb); - //Gesamtstunden akzeptiert - $gesamtstunden_akzeptiert = str_replace(', ', '.', $row['gesamtstunden_akzeptiert']); - $worksheet->write($zeile, ++$i, $gesamtstunden_akzeptiert, $formatnb); - $gesamt->write($gesamtsheet_row, $i, $gesamtstunden_akzeptiert, $formatnb); - //Gesamtkosten akzeptiert - $gesamtkosten_akzeptiert_row = str_replace(', ', '.', $row['gesamtkosten_akzeptiert']); - $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_akzeptiert_row, $formatnb); - $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_akzeptiert_row, $formatnb); + + //Gesamtstunden bestellt + $gesamtstunden_bestellt = str_replace(', ', '.', $row['gesamtstunden_bestellt']); + $worksheet->write($zeile, ++$i, $gesamtstunden_bestellt, $formatnb); + $gesamt->write($gesamtsheet_row, $i, $gesamtstunden_bestellt, $formatnb); + //Gesamtkosten bestellt + $gesamtkosten_bestellt_row = str_replace(', ', '.', $row['gesamtkosten_bestellt']); + $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_bestellt_row, $formatnb); + $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_bestellt_row, $formatnb); + //Gesamtstunden erteilt $gesamtstunden_erteilt = str_replace(', ', '.', $row['gesamtstunden_erteilt']); $worksheet->write($zeile, ++$i, $gesamtstunden_erteilt, $formatnb); @@ -711,6 +755,15 @@ if ($result_stg = $db->db_query($qry_stg)) $gesamtkosten_erteilt_row = str_replace(', ', '.', $row['gesamtkosten_erteilt']); $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_erteilt_row, $formatnb); $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_erteilt_row, $formatnb); + + //Gesamtstunden akzeptiert + $gesamtstunden_akzeptiert = str_replace(', ', '.', $row['gesamtstunden_akzeptiert']); + $worksheet->write($zeile, ++$i, $gesamtstunden_akzeptiert, $formatnb); + $gesamt->write($gesamtsheet_row, $i, $gesamtstunden_akzeptiert, $formatnb); + //Gesamtkosten akzeptiert + $gesamtkosten_akzeptiert_row = str_replace(', ', '.', $row['gesamtkosten_akzeptiert']); + $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_akzeptiert_row, $formatnb); + $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_akzeptiert_row, $formatnb); //Kosten zu den Gesamtkosten hinzurechnen $gesamtkosten = $gesamtkosten + $row['gesamtkosten']; @@ -731,15 +784,15 @@ if ($result_stg = $db->db_query($qry_stg)) else $liste_gesamt[$uid]['gesamtkosten'] = $row['gesamtkosten']; - if (isset($liste_gesamt[$uid]['gesamtstunden_akzeptiert'])) - $liste_gesamt[$uid]['gesamtstunden_akzeptiert'] += $row['gesamtstunden_akzeptiert']; + if (isset($liste_gesamt[$uid]['gesamtstunden_bestellt'])) + $liste_gesamt[$uid]['gesamtstunden_bestellt'] += $row['gesamtstunden_bestellt']; else - $liste_gesamt[$uid]['gesamtstunden_akzeptiert'] = $row['gesamtstunden_akzeptiert']; - - if (isset($liste_gesamt[$uid]['gesamtkosten_akzeptiert'])) - $liste_gesamt[$uid]['gesamtkosten_akzeptiert'] += $row['gesamtkosten_akzeptiert']; + $liste_gesamt[$uid]['gesamtstunden_bestellt'] = $row['gesamtstunden_bestellt']; + + if (isset($liste_gesamt[$uid]['gesamtkosten_bestellt'])) + $liste_gesamt[$uid]['gesamtkosten_bestellt'] += $row['gesamtkosten_bestellt']; else - $liste_gesamt[$uid]['gesamtkosten_akzeptiert'] = $row['gesamtkosten_akzeptiert']; + $liste_gesamt[$uid]['gesamtkosten_bestellt'] = $row['gesamtkosten_bestellt']; if (isset($liste_gesamt[$uid]['gesamtstunden_erteilt'])) $liste_gesamt[$uid]['gesamtstunden_erteilt'] += $row['gesamtstunden_erteilt']; @@ -750,6 +803,16 @@ if ($result_stg = $db->db_query($qry_stg)) $liste_gesamt[$uid]['gesamtkosten_erteilt'] += $row['gesamtkosten_erteilt']; else $liste_gesamt[$uid]['gesamtkosten_erteilt'] = $row['gesamtkosten_erteilt']; + + if (isset($liste_gesamt[$uid]['gesamtstunden_akzeptiert'])) + $liste_gesamt[$uid]['gesamtstunden_akzeptiert'] += $row['gesamtstunden_akzeptiert']; + else + $liste_gesamt[$uid]['gesamtstunden_akzeptiert'] = $row['gesamtstunden_akzeptiert']; + + if (isset($liste_gesamt[$uid]['gesamtkosten_akzeptiert'])) + $liste_gesamt[$uid]['gesamtkosten_akzeptiert'] += $row['gesamtkosten_akzeptiert']; + else + $liste_gesamt[$uid]['gesamtkosten_akzeptiert'] = $row['gesamtkosten_akzeptiert']; } //Gesamtkosten anzeigen