X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=reports.php;h=a2825329ecef3a10700597d88fec0720f6706d7d;hb=bd92aeb3404ed8625272abccc9a8766f13ab75e6;hp=0028e99572d816cc4d427af733cb93844e01d8a9;hpb=a6c4fa37379736e1c7568ccea1c5d371de7c6271;p=timetracker.git diff --git a/reports.php b/reports.php index 0028e995..a2825329 100644 --- a/reports.php +++ b/reports.php @@ -35,6 +35,7 @@ import('Period'); import('ttProjectHelper'); import('ttFavReportHelper'); import('ttClientHelper'); +import('ttReportHelper'); // Access check. if (!(ttAccessAllowed('view_own_reports') || ttAccessAllowed('view_reports') || ttAccessAllowed('view_all_reports'))) { @@ -66,10 +67,11 @@ $form->addInput(array('type'=>'submit','name'=>'btn_generate','value'=>$i18n->ge $form->addInput(array('type'=>'submit','name'=>'btn_delete','value'=>$i18n->get('label.delete'),'onclick'=>"return confirm('".$i18n->get('form.reports.confirm_delete')."')")); // Dropdown for clients if the clients plugin is enabled. -if ($user->isPluginEnabled('cl') && !($user->isClient() && $user->client_id)) { - if ($user->canManageTeam() || ($user->isClient() && !$user->client_id)) - $client_list = ttClientHelper::getClients(); - else +if ($user->isPluginEnabled('cl') && !$user->isClient()) { + if ($user->can('view_reports') || $user->can('view_all_reports')) { + $client_list = ttClientHelper::getClients(); // TODO: improve getClients for "view_reports" + // by filtering out not relevant clients. + } else $client_list = ttClientHelper::getClientsForUser(); $form->addInput(array('type'=>'combobox', 'name'=>'client', @@ -89,8 +91,8 @@ if ($custom_fields && $custom_fields->fields[0] && $custom_fields->fields[0]['ty } // Add controls for projects and tasks. -if ($user->canManageTeam()) { - $project_list = ttProjectHelper::getProjects(); // Manager and co-managers can run reports on all active and inactive projects. +if ($user->can('view_reports') || $user->can('view_all_reports')) { + $project_list = ttProjectHelper::getProjects(); // All active and inactive projects. } elseif ($user->isClient()) { $project_list = ttProjectHelper::getProjectsForClient(); } else { @@ -123,15 +125,17 @@ $form->addInput(array('type'=>'combobox', 'empty'=>array(''=>$i18n->get('dropdown.all')))); // Add invoiced / not invoiced selector. -$invoice_options = array('1'=>$i18n->get('form.reports.include_invoiced'), - '2'=>$i18n->get('form.reports.include_not_invoiced')); -$form->addInput(array('type'=>'combobox', - 'name'=>'invoice', - 'style'=>'width: 250px;', - 'data'=>$invoice_options, - 'empty'=>array(''=>$i18n->get('dropdown.all')))); +if ($user->can('manage_invoices')) { + $invoice_options = array('1'=>$i18n->get('form.reports.include_invoiced'), + '2'=>$i18n->get('form.reports.include_not_invoiced')); + $form->addInput(array('type'=>'combobox', + 'name'=>'invoice', + 'style'=>'width: 250px;', + 'data'=>$invoice_options, + 'empty'=>array(''=>$i18n->get('dropdown.all')))); +} -if ($user->canManageTeam() && $user->isPluginEnabled('ps')) { +if ($user->can('manage_invoices') && $user->isPluginEnabled('ps')) { $form->addInput(array('type'=>'combobox', 'name'=>'paid_status', 'style'=>'width: 250px;', @@ -191,11 +195,11 @@ $form->addInput(array('type'=>'datefield','maxlength'=>'20','name'=>'end_date')) // Add checkboxes for fields. if ($user->isPluginEnabled('cl')) $form->addInput(array('type'=>'checkbox','name'=>'chclient')); -if (($user->canManageTeam() || $user->isClient()) && $user->isPluginEnabled('iv')) +if (($user->can('manage_invoices') || $user->isClient()) && $user->isPluginEnabled('iv')) $form->addInput(array('type'=>'checkbox','name'=>'chinvoice')); -if ($user->canManageTeam() && $user->isPluginEnabled('ps')) +if ($user->can('manage_invoices') && $user->isPluginEnabled('ps')) $form->addInput(array('type'=>'checkbox','name'=>'chpaid')); -if ($user->canManageTeam()) +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) $form->addInput(array('type'=>'checkbox','name'=>'chproject')); @@ -211,10 +215,13 @@ $form->addInput(array('type'=>'checkbox','name'=>'chcost')); // If we have a custom field - add a checkbox for it. if ($custom_fields && $custom_fields->fields[0]) $form->addInput(array('type'=>'checkbox','name'=>'chcf_1')); +if ($user->isPluginEnabled('wu')) + $form->addInput(array('type'=>'checkbox','name'=>'chunits')); + // Add group by control. $group_by_options['no_grouping'] = $i18n->get('form.reports.group_by_no'); $group_by_options['date'] = $i18n->get('form.reports.group_by_date'); -if ($user->canManageTeam() || $user->isClient()) +if ($user->can('view_reports') || $user->can('view_all_reports') || $user->isClient()) $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'); @@ -257,6 +264,7 @@ if ($request->isGet() && !$bean->isSaved()) { $form->setValueByElement('chfinish', '1'); $form->setValueByElement('chnote', '1'); $form->setValueByElement('chcf_1', '0'); + $form->setValueByElement('chunits', '0'); $form->setValueByElement('chtotalsonly', '0'); } @@ -325,10 +333,11 @@ if ($request->isPost()) { if ($start_date->compare($end_date) > 0) $err->add($i18n->get('error.interval'), $i18n->get('label.end_date'), $i18n->get('label.start_date')); } - - $bean->saveBean(); + // Check remaining values. + if (!ttReportHelper::verifyBean($bean)) $err->add($i18n->get('error.sys')); if ($err->no()) { + $bean->saveBean(); // Now we can go ahead and create a report. header('Location: report.php'); exit();