X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/f1025fe95f90cd8dc7fa3b3f75617e447ab33f2e..0bc24003fa4ca271427a082b85ebd6edd4219c55:/reports.php diff --git a/reports.php b/reports.php index efbf9642..e6334f9b 100644 --- a/reports.php +++ b/reports.php @@ -31,6 +31,7 @@ import('form.Form'); import('form.ActionForm'); import('DateAndTime'); import('ttTeamHelper'); +import('ttGroupHelper'); import('Period'); import('ttProjectHelper'); import('ttFavReportHelper'); @@ -42,21 +43,28 @@ if (!(ttAccessAllowed('view_own_reports') || ttAccessAllowed('view_reports') || header('Location: access_denied.php'); exit(); } +if (!$user->exists()) { + header('Location: access_denied.php'); // No users in subgroup. + exit(); +} +// End of access checks. + +$trackingMode = $user->getTrackingMode(); // Use custom fields plugin if it is enabled. if ($user->isPluginEnabled('cf')) { require_once('plugins/CustomFields.class.php'); - $custom_fields = new CustomFields($user->group_id); + $custom_fields = new CustomFields(); $smarty->assign('custom_fields', $custom_fields); } $form = new Form('reportForm'); // Get saved favorite reports for user. -$report_list = ttFavReportHelper::getReports($user->id); +$report_list = ttFavReportHelper::getReports(); $form->addInput(array('type'=>'combobox', 'name'=>'favorite_report', - 'onchange'=>'document.reportForm.fav_report_changed.value=1;document.reportForm.submit();', + 'onchange'=>'this.form.fav_report_changed.value=1;this.form.submit();', 'style'=>'width: 250px;', 'data'=>$report_list, 'datakeys'=>array('id','name'), @@ -96,7 +104,7 @@ if ($user->can('view_reports') || $user->can('view_all_reports')) { } elseif ($user->isClient()) { $project_list = ttProjectHelper::getProjectsForClient(); } else { - $project_list = ttProjectHelper::getAssignedProjects($user->id); + $project_list = ttProjectHelper::getAssignedProjects($user->getUser()); } $form->addInput(array('type'=>'combobox', 'onchange'=>'fillTaskDropdown(this.value);selectAssignedUsers(this.value);', @@ -105,8 +113,8 @@ $form->addInput(array('type'=>'combobox', 'data'=>$project_list, 'datakeys'=>array('id','name'), 'empty'=>array(''=>$i18n->get('dropdown.all')))); -if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) { - $task_list = ttTeamHelper::getActiveTasks($user->group_id); +if (MODE_PROJECTS_AND_TASKS == $trackingMode) { + $task_list = ttGroupHelper::getActiveTasks(); $form->addInput(array('type'=>'combobox', 'name'=>'task', 'style'=>'width: 250px;', @@ -148,7 +156,7 @@ $user_list = array(); if ($user->can('view_reports') || $user->can('view_all_reports') || $user->isClient()) { // Prepare user and assigned projects arrays. if ($user->can('view_reports') || $user->can('view_all_reports')) { - $max_rank = $user->rank-1; + $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); @@ -201,11 +209,11 @@ if ($user->can('manage_invoices') && $user->isPluginEnabled('ps')) $form->addInput(array('type'=>'checkbox','name'=>'chpaid')); if ($user->can('view_reports') || $user->can('view_all_reports')) $form->addInput(array('type'=>'checkbox','name'=>'chip')); -if (MODE_PROJECTS == $user->tracking_mode || MODE_PROJECTS_AND_TASKS == $user->tracking_mode) +if (MODE_PROJECTS == $trackingMode || MODE_PROJECTS_AND_TASKS == $trackingMode) $form->addInput(array('type'=>'checkbox','name'=>'chproject')); -if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) +if (MODE_PROJECTS_AND_TASKS == $trackingMode) $form->addInput(array('type'=>'checkbox','name'=>'chtask')); -if ((TYPE_START_FINISH == $user->record_type) || (TYPE_ALL == $user->record_type)) { +if ((TYPE_START_FINISH == $user->getRecordType()) || (TYPE_ALL == $user->getRecordType())) { $form->addInput(array('type'=>'checkbox','name'=>'chstart')); $form->addInput(array('type'=>'checkbox','name'=>'chfinish')); } @@ -225,9 +233,9 @@ if ($user->can('view_reports') || $user->can('view_all_reports') || $user->isCli $group_by_options['user'] = $i18n->get('form.reports.group_by_user'); if ($user->isPluginEnabled('cl') && !($user->isClient() && $user->client_id)) $group_by_options['client'] = $i18n->get('form.reports.group_by_client'); -if (MODE_PROJECTS == $user->tracking_mode || MODE_PROJECTS_AND_TASKS == $user->tracking_mode) +if (MODE_PROJECTS == $trackingMode || MODE_PROJECTS_AND_TASKS == $trackingMode) $group_by_options['project'] = $i18n->get('form.reports.group_by_project'); -if (MODE_PROJECTS_AND_TASKS == $user->tracking_mode) +if (MODE_PROJECTS_AND_TASKS == $trackingMode) $group_by_options['task'] = $i18n->get('form.reports.group_by_task'); if ($custom_fields && $custom_fields->fields[0] && $custom_fields->fields[0]['type'] == CustomFields::TYPE_DROPDOWN) { $group_by_options['cf_1'] = $custom_fields->fields[0]['label']; @@ -252,7 +260,7 @@ $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)); - $period = new Period(INTERVAL_THIS_MONTH, new DateAndTime($user->date_format)); + $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'); @@ -282,7 +290,7 @@ if ($request->isPost()) { // User changed favorite report. We need to load new values into the form. if ($bean->getAttribute('favorite_report')) { // This loads new favorite report options into the bean (into our form). - ttFavReportHelper::loadReport($user->id, $bean); + ttFavReportHelper::loadReport($user->getUser(), $bean); // If user selected no favorite report - mark all user checkboxes (most probable scenario). if ($bean->getAttribute('favorite_report') == -1)