diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index 853be72fe..b4ee093b7 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(); @@ -96,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) "; @@ -124,6 +125,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(11); + $format_number_colored =& $workbook->addFormat(); $format_number_colored->setNumFormat('0,0.00'); //$format_number_colored->setNumFormat('0.00'); @@ -185,6 +190,17 @@ 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 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); @@ -209,7 +225,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 +245,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() @@ -262,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 @@ -302,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)) { @@ -314,13 +325,43 @@ 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_bestellt'])) + { + $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 (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'])) { $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; } - if ($row->vertragsstatus == 'akzeptiert') + 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); + } + + if (in_array('erteilt', $row->vertragsstatus)) + { + $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); + } + + if (in_array('akzeptiert', $row->vertragsstatus)) { $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] + $row->semesterstunden; @@ -336,13 +377,43 @@ 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_bestellt'])) + { + $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 (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'])) { $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; } - if ($row->vertragsstatus == 'akzeptiert') + 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); + } + + if (in_array('erteilt', $row->vertragsstatus)) + { + $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); + } + + if (in_array('akzeptiert', $row->vertragsstatus)) { $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] + $row->semesterstunden; @@ -356,8 +427,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 +458,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 +473,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() @@ -419,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 ( @@ -461,8 +540,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; @@ -488,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); @@ -524,13 +612,42 @@ if ($result_stg = $db->db_query($qry_stg)) { $liste[$uid]['geaendert'] = true; } + + if (!isset($liste[$uid]['gesamtstunden_bestellt'])) + { + $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 (!isset($liste[$uid]['gesamtstunden_akzeptiert'])) { $liste[$uid]['gesamtstunden_akzeptiert'] = 0; $liste[$uid]['gesamtkosten_akzeptiert'] = 0; } - if ($row->vertragsstatus == 'akzeptiert') + 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; @@ -558,13 +675,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 { $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); @@ -584,11 +708,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); @@ -613,6 +737,25 @@ 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 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); + $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); + //Gesamtstunden akzeptiert $gesamtstunden_akzeptiert = str_replace(', ', '.', $row['gesamtstunden_akzeptiert']); $worksheet->write($zeile, ++$i, $gesamtstunden_akzeptiert, $formatnb); @@ -641,11 +784,31 @@ if ($result_stg = $db->db_query($qry_stg)) else $liste_gesamt[$uid]['gesamtkosten'] = $row['gesamtkosten']; + if (isset($liste_gesamt[$uid]['gesamtstunden_bestellt'])) + $liste_gesamt[$uid]['gesamtstunden_bestellt'] += $row['gesamtstunden_bestellt']; + else + $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_bestellt'] = $row['gesamtkosten_bestellt']; + + 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']; + 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 @@ -745,3 +908,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