X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=reports.php;h=aa492061a4ea06310478508a64f5816effbf0e07;hb=HEAD;hp=febfad794bef66b06f03b5c1790dc9d53a845164;hpb=c14bc01ae221ece2c5b78c9c39b4902cb25154d6;p=timetracker.git diff --git a/reports.php b/reports.php index febfad79..aa492061 100644 --- a/reports.php +++ b/reports.php @@ -58,7 +58,7 @@ if ($user->isPluginEnabled('cf')) { $showCustomFieldCheckbox = $custom_fields->fields[0]; $showCustomFieldDropdown = $custom_fields->fields[0] && $custom_fields->fields[0]['type'] == CustomFields::TYPE_DROPDOWN; if ($showCustomFieldDropdown) - $showCustomFieldDropdown &= count($custom_fields->options) > 0; + $showCustomFieldDropdown &= CustomFields::getOptions($custom_fields->fields[0]['id']); } $form = new Form('reportForm'); @@ -89,6 +89,7 @@ if ($showClient) { } if ($showClient) { $form->addInput(array('type'=>'combobox', + 'onchange'=>'fillProjectDropdown(this.value);', 'name'=>'client', 'style'=>'width: 250px;', 'data'=>$client_list, @@ -101,7 +102,7 @@ if ($showCustomFieldDropdown) { $form->addInput(array('type'=>'combobox','name'=>'option', 'style'=>'width: 250px;', 'value'=>$cl_cf_1, - 'data'=>$custom_fields->options, + 'data'=>CustomFields::getOptions($custom_fields->fields[0]['id']), 'empty'=>array(''=>$i18n->get('dropdown.all')))); } @@ -192,9 +193,7 @@ if ($showApproved) { } // Add timesheet assignment selector. -$showTimesheetDropdown = $user->isPluginEnabled('ts') && - ($user->can('view_own_timesheets') || $user->can('view_timesheets') || - $user->can('view_all_timesheets') || ($user->can('view_client_timesheets') && $user->can('view_client_unapproved'))); +$showTimesheetDropdown = $user->isPluginEnabled('ts'); if ($showTimesheetDropdown) { $form->addInput(array('type'=>'combobox', 'name'=>'timesheet', @@ -207,9 +206,7 @@ if ($showTimesheetDropdown) { 'empty'=>array(''=>$i18n->get('dropdown.all')) )); } -$showTimesheetCheckbox = $user->isPluginEnabled('ts') && - ($user->can('view_own_timesheets') || $user->can('view_timesheets') || - $user->can('view_all_timesheets') || $user->can('view_client_timesheets')); +$showTimesheetCheckbox = $user->isPluginEnabled('ts'); // Add user table. $showUsers = $user->can('view_reports') || $user->can('view_all_reports') || $user->isClient(); @@ -219,17 +216,25 @@ if ($showUsers) { if ($user->can('view_reports') || $user->can('view_all_reports')) { $rank = $user->getMaxRankForGroup($user->getGroup()); if ($user->can('view_all_reports')) $max_rank = MAX_RANK; - if ($user->can('view_own_reports')) - $options = array('max_rank'=>$max_rank,'include_self'=>true); - else - $options = array('max_rank'=>$max_rank); - $users = $user->getUsers($options); // Active and inactive users. + if ($user->can('view_own_reports')) { + $options_active = array('max_rank'=>$max_rank,'include_self'=>true,'status'=>ACTIVE); + $options_inactive = array('max_rank'=>$max_rank,'include_self'=>true,'status'=>INACTIVE); + } else { + $options_active = array('max_rank'=>$max_rank,'status'=>ACTIVE); + $options_inactive = array('max_rank'=>$max_rank,'status'=>INACTIVE); + } + $active_users = $user->getUsers($options_active); + $inactive_users = $user->getUsers($options_inactive); + } + elseif ($user->isClient()) { + $options_active = array('status'=>ACTIVE); + $options_inactive = array('status'=>INACTIVE); + $active_users = ttGroupHelper::getUsersForClient($options_active); + $inactive_users = ttGroupHelper::getUsersForClient($options_inactive); } - elseif ($user->isClient()) - $users = ttGroupHelper::getUsersForClient(); // Active and inactive users for clients. - foreach ($users as $single_user) { - $user_list[$single_user['id']] = $single_user['name']; + foreach ($active_users as $single_user) { + $user_list_active[$single_user['id']] = $single_user['name']; $projects = ttProjectHelper::getAssignedProjects($single_user['id']); if ($projects) { foreach ($projects as $single_project) { @@ -237,10 +242,27 @@ if ($showUsers) { } } } - $row_count = ceil(count($user_list)/3); + $row_count = ceil(count($user_list_active)/3); $form->addInput(array('type'=>'checkboxgroup', - 'name'=>'users', - 'data'=>$user_list, + 'name'=>'users_active', + 'data'=>$user_list_active, + 'layout'=>'V', + 'groupin'=>$row_count, + 'style'=>'width: 100%;')); + + foreach ($inactive_users as $single_user) { + $user_list_inactive[$single_user['id']] = $single_user['name']; + $projects = ttProjectHelper::getAssignedProjects($single_user['id']); + if ($projects) { + foreach ($projects as $single_project) { + $assigned_projects[$single_user['id']][] = $single_project['id']; + } + } + } + $row_count = ceil(count($user_list_inactive)/3); + $form->addInput(array('type'=>'checkboxgroup', + 'name'=>'users_inactive', + 'data'=>$user_list_inactive, 'layout'=>'V', 'groupin'=>$row_count, 'style'=>'width: 100%;')); @@ -294,6 +316,9 @@ if ($showTimesheetCheckbox) $form->addInput(array('type'=>'checkbox','name'=>'chtimesheet')); if ($showApproved) $form->addInput(array('type'=>'checkbox','name'=>'chapproved')); +$showFiles = $user->isPluginEnabled('at'); +if ($showFiles) + $form->addInput(array('type'=>'checkbox','name'=>'chfiles')); // Add a hidden control for timesheet_user_id (who to generate a timesheet for). if ($showTimesheetCheckbox) @@ -332,24 +357,31 @@ $bean = new ActionForm('reportBean', $form, $request); if ($request->isGet() && !$bean->isSaved()) { // No previous form data were found in session. Use the following default values. - $form->setValueByElement('users', array_keys($user_list)); + $form->setValueByElement('users_active', array_keys($user_list_active)); $period = new Period(INTERVAL_THIS_MONTH, new DateAndTime($user->getDateFormat())); $form->setValueByElement('start_date', $period->getStartDate()); $form->setValueByElement('end_date', $period->getEndDate()); + $form->setValueByElement('chclient', '1'); - $form->setValueByElement('chinvoice', '0'); - $form->setValueByElement('chpaid', '0'); - $form->setValueByElement('chip', '0'); - $form->setValueByElement('chproject', '1'); $form->setValueByElement('chstart', '1'); + $form->setValueByElement('chfinish', '1'); $form->setValueByElement('chduration', '1'); - $form->setValueByElement('chcost', '0'); + + $form->setValueByElement('chproject', '1'); $form->setValueByElement('chtask', '1'); - $form->setValueByElement('chfinish', '1'); $form->setValueByElement('chnote', '1'); + $form->setValueByElement('chcost', '0'); + + $form->setValueByElement('chtimesheet', '0'); + $form->setValueByElement('chip', '0'); + $form->setValueByElement('chapproved', '0'); + $form->setValueByElement('chpaid', '0'); + $form->setValueByElement('chcf_1', '0'); $form->setValueByElement('chunits', '0'); - $form->setValueByElement('chtimesheet', '0'); + $form->setValueByElement('chinvoice', '0'); + $form->setValueByElement('chfiles', '1'); + $form->setValueByElement('chtotalsonly', '0'); } @@ -367,8 +399,10 @@ if ($request->isPost()) { ttFavReportHelper::loadReport($bean); // If user selected no favorite report - mark all user checkboxes (most probable scenario). - if ($bean->getAttribute('favorite_report') == -1) - $form->setValueByElement('users', array_keys($user_list)); + if ($bean->getAttribute('favorite_report') == -1) { + $form->setValueByElement('users_active', array_keys($user_list_active)); + $form->setValueByElement('users_inactive', false); + } // Save form data in session for future use. $bean->saveBean(); @@ -437,6 +471,7 @@ if ($request->isPost()) { } } // isPost +$smarty->assign('client_list', $client_list); $smarty->assign('show_client', $showClient); $smarty->assign('show_cf_1_dropdown', $showCustomFieldDropdown); $smarty->assign('show_cf_1_checkbox', $showCustomFieldCheckbox); @@ -449,11 +484,13 @@ $smarty->assign('show_invoice_checkbox', $showInvoiceCheckbox); $smarty->assign('show_paid_status', $showPaidStatus); $smarty->assign('show_timesheet_dropdown', $showTimesheetDropdown); $smarty->assign('show_timesheet_checkbox', $showTimesheetCheckbox); -$smarty->assign('show_users', $showUsers); +$smarty->assign('show_active_users', $showUsers && $active_users); +$smarty->assign('show_inactive_users', $showUsers && $inactive_users); $smarty->assign('show_start', $showStart); $smarty->assign('show_finish', $showFinish); $smarty->assign('show_work_units', $showWorkUnits); $smarty->assign('show_ip', $showIP); +$smarty->assign('show_files', $showFiles); $smarty->assign('project_list', $project_list); $smarty->assign('task_list', $task_list); $smarty->assign('assigned_projects', $assigned_projects);