addElement('checkbox', 'select_all_users', get_lang('SelectAllUsers'), null, ['id' => 'select_all_users']); $userOptions = []; foreach ($userList as $user) { $userOptions[$user['user_id']] = $user['lastname'].' '.$user['firstname']; } $formValidator->addElement('select', 'users', get_lang('SelectUsers'), $userOptions, [ 'multiple' => 'multiple', 'id' => 'user_selector', ]); $htmlHeadXtra[] = ' '; // Date selectors $formValidator->addDatePicker('start_date', get_lang('StartDate')); $formValidator->addDatePicker('end_date', get_lang('EndDate')); // Report type selector $reportTypeValues = [ 'time_report' => get_lang('TimeReport'), 'billing_report' => get_lang('BillingReport'), ]; $formValidator->addElement('select', 'report_type', get_lang('ReportType'), $reportTypeValues); // Button to generate the report $formValidator->addButtonSend(get_lang('GenerateReport')); // Form validation rules $formValidator->addRule('start_date', get_lang('ThisFieldIsRequired'), 'required'); $formValidator->addRule('end_date', get_lang('ThisFieldIsRequired'), 'required'); $formValidator->addRule('users', get_lang('ThisFieldIsRequired'), 'required'); $formValidator->addRule('report_type', get_lang('ThisFieldIsRequired'), 'required'); if ($formValidator->validate()) { $values = $formValidator->exportValues(); $users = $values['users']; $startDate = $values['start_date']; $endDate = $values['end_date']; $reportType = $values['report_type']; $exportXls = isset($_POST['export']); if (empty($users)) { Display::addFlash(Display::return_message(get_lang('NoUsersSelected'), 'warning')); } else { $data = Tracking::generateReport($reportType, $users, $startDate, $endDate); if (empty($data)) { Display::addFlash(Display::return_message(get_lang('NoDataToExport'), 'warning')); } else { $headers = $data['headers']; $rows = $data['rows']; array_unshift($rows, $headers); $fileName = get_lang('Export').'-'.$reportTypeValues[$reportType].'_'.api_get_local_time(); Export::arrayToCsv($rows, $fileName); } } } $nameTools = get_lang('TimeReport'); Display::display_header($nameTools); $formValidator->display(); Display::display_footer();