diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 8c4588893..5831ebecf 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -166,6 +166,12 @@ if(isset($_POST['export'])) } } +//CSV export für Übersicht zugeteilter Projekte - Konflikt mit normalen HTML headern deshalb weiter vorne +if(isset($_POST['projektübersichtexport'])) +{ + exportProjectOverviewAsCSV($user, ','); +} + echo ' @@ -1048,7 +1054,9 @@ if($projekt->getProjekteMitarbeiter($user, true)) CSV Import | - CSV Export"; + CSV Export | + + Projektübersichtexport"; if($anzprojekte > 0) echo " | ".$p->t("zeitaufzeichnung/projektexport").""; echo " @@ -1134,6 +1142,17 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo ''; } + if (isset($_GET['projektübersichtexport'])) + { + echo '
'; + echo '
'; + echo 'CSV-Export'; + echo ''; + echo ''; + echo '
'; + echo '
'; + } + //Aktivitaet echo ''; echo ''.$p->t("zeitaufzeichnung/aktivitaet").''; @@ -1886,4 +1905,70 @@ function getZeitaufzeichnung($user, $von, $bis) return $za; } +/** + * Exportiert Zeitaufzeichnungsdaten als CSV + * @param $data Zeitaufzeichnungsdaten + * @param string $delimiter CSV-Trennzeichen + * @param $fieldheadings Namen der Spaltenüberschriften + * @param bool $za_simple Zeitaufzeichnung lang (für Infrastrukturmitarbeiter) oder kurz (simple) + * @param $uid Id des Users für CSV-Filenamen "zeitaufzeichnung_uid" + */ +function exportProjectOverviewAsCSV($user, $delimiter = ',') +{ + + $filename = "projektUebersicht_".$user.".csv"; + header('Content-type: text/csv; charset=utf-8'); + header('Content-Disposition: attachment; filename='.$filename); + + $file = fopen('php://output', 'w'); + $towrite = getDataForProjectOverviewCSV($user); + foreach ($towrite as $row) + { + fputcsv($file, $row, $delimiter); + } + fclose($file); + //Abbruch damit HTML markup danach nicht mit exportiert wird + exit(); +} + +function getDataForProjectOverviewCSV($user) +{ + $projects_of_user = new projekt(); + $projects= $projects_of_user->getProjekteListForMitarbeiter($user); + + $csvData = array(); + //headers schreiben + $csvData[] = array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'START', 'PROJEKT ENDE'); + foreach ($projects as $project) + { + //Newline characters bei Beschreibung ersetzen + $titel = $project->titel; + $projekt_kurzbz = $project->projekt_kurzbz; + $projekt_phase = ''; + $beginn = $project->beginn; + $ende = $project->ende; + + $csvData[] = array($titel, $projekt_kurzbz,$projekt_phase, $beginn, $ende); + + $projektphasen = new projektphase($projekt_kurzbz); + + if($projektphasen->getProjektphasen($projekt_kurzbz)) + { + foreach($projektphasen->result as $projektphase) + { + $projekt_phase = $projektphase->bezeichnung; + if(!empty($projektphase->beginn)) + $beginn = $projektphase->beginn; + else + $beginn = $project->beginn; + if(!empty($projektphase->ende)) + $ende = $projektphase->ende; + else + $ende = $project->ende; + $csvData[] = array($titel, $projekt_kurzbz,$projekt_phase, $beginn, $ende); + } + } + } + return $csvData; +} ?>