Skip to content

Commit 7f2d201

Browse files
committed
Add PDF Export to time report
1 parent 6e3ecc6 commit 7f2d201

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

main/mySpace/time_report.php

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,13 @@
8383
];
8484
$formValidator->addElement('select', 'report_type', get_lang('ReportType'), $reportTypeValues);
8585

86+
// Export format selector allows XLS or PDF output
87+
$formatValues = [
88+
'xls' => get_lang('ExportExcel'),
89+
'pdf' => get_lang('ExportToPDF'),
90+
];
91+
$formValidator->addElement('select', 'export_format', get_lang('Format'), $formatValues);
92+
8693
// Button to generate the report
8794
$formValidator->addButtonSend(get_lang('GenerateReport'));
8895

@@ -91,14 +98,17 @@
9198
$formValidator->addRule('end_date', get_lang('ThisFieldIsRequired'), 'required');
9299
$formValidator->addRule('users', get_lang('ThisFieldIsRequired'), 'required');
93100
$formValidator->addRule('report_type', get_lang('ThisFieldIsRequired'), 'required');
101+
$formValidator->addRule('export_format', get_lang('ThisFieldIsRequired'), 'required');
102+
103+
$formValidator->setDefaults(['export_format' => 'xls']);
94104

95105
if ($formValidator->validate()) {
96106
$values = $formValidator->exportValues();
97107
$users = $values['users'];
98108
$startDate = $values['start_date'];
99109
$endDate = $values['end_date'];
100110
$reportType = $values['report_type'];
101-
$exportXls = isset($_POST['export']);
111+
$format = $values['export_format'];
102112

103113
if (empty($users)) {
104114
Display::addFlash(Display::return_message(get_lang('NoUsersSelected'), 'warning'));
@@ -111,7 +121,12 @@
111121
$rows = $data['rows'];
112122
array_unshift($rows, $headers);
113123
$fileName = get_lang('Export').'-'.$reportTypeValues[$reportType].'_'.api_get_local_time();
114-
Export::arrayToCsv($rows, $fileName);
124+
if ($format === 'pdf') {
125+
$html = Export::convert_array_to_html($rows);
126+
Export::export_html_to_pdf($html, ['filename' => $fileName]);
127+
} else {
128+
Export::arrayToCsv($rows, $fileName);
129+
}
115130
}
116131
}
117132
}
@@ -121,4 +136,4 @@
121136

122137
$formValidator->display();
123138

124-
Display::display_footer();
139+
Display::display_footer();

0 commit comments

Comments
 (0)