import('ttGroupHelper');
// Access check.
-if (!(ttAccessAllowed('view_own_reports') || ttAccessAllowed('view_reports') || ttAccessAllowed('view_all_reports'))) {
+if (!(ttAccessAllowed('view_own_reports') || ttAccessAllowed('view_reports') || ttAccessAllowed('view_all_reports') || ttAccessAllowed('view_client_reports'))) {
header('Location: access_denied.php');
exit();
}
+if ($user->isPluginEnabled('ap')) {
+ $cl_mark_approved_select_option = $request->getParameter('mark_approved_select_options', ($request->isPost() ? null : @$_SESSION['mark_approved_select_option']));
+ $_SESSION['mark_approved_select_option'] = $cl_mark_approved_select_option;
+ $cl_mark_approved_action_option = $request->getParameter('mark_approved_action_options', ($request->isPost() ? null : @$_SESSION['mark_approved_action_option']));
+ $_SESSION['mark_aproved_action_option'] = $cl_mark_approved_action_option;
+}
if ($user->isPluginEnabled('ps')) {
$cl_mark_paid_select_option = $request->getParameter('mark_paid_select_options', ($request->isPost() ? null : @$_SESSION['mark_paid_select_option']));
$_SESSION['mark_paid_select_option'] = $cl_mark_paid_select_option;
$smarty->assign('custom_fields', $custom_fields);
}
-$form = new Form('reportForm');
+$form = new Form('reportViewForm');
// Report settings are stored in session bean before we get here from reports.php.
-$bean = new ActionForm('reportBean', $form, $request);
+$bean = new ActionForm('reportBean', new Form('reportForm'), $request);
// If we are in post, load the bean from session, as the constructor does it only in get.
if ($request->isPost()) $bean->loadBean();
$client_id = $bean->getAttribute('client');
-// Do we need to show checkboxes?
+// Do we need to show checkboxes? We show them if we allow setting approved or paid status,
+// and also when we can assign / deassign records to invoces.
+if ($bean->getAttribute('chapproved') && ($user->can('approve_reports') || $user->can('approve_all_eports')))
+ $showForApproved = true;
if ($bean->getAttribute('chpaid') ||
($client_id && $bean->getAttribute('chinvoice') && ('no_grouping' == $bean->getAttribute('group_by1')) && !$user->isClient())) {
if ($user->can('manage_invoices'))
- $smarty->assign('use_checkboxes', true);
+ $showForInvoicesOrPaid = true;
+}
+if ($showForApproved || $showForInvoicesOrPaid)
+ $smarty->assign('use_checkboxes', true);
+
+// Controls for "Mark approved" block.
+if ($showForApproved) {
+ $mark_approved_select_options = array('1'=>$i18n->get('dropdown.all'),'2'=>$i18n->get('dropdown.select'));
+ $form->addInput(array('type'=>'combobox',
+ 'name'=>'mark_approved_select_options',
+ 'data'=>$mark_approved_select_options,
+ 'value'=>$cl_mark_approved_select_option));
+ $mark_approved_action_options = array('1'=>$i18n->get('form.reports.include_approved'),'2'=>$i18n->get('form.reports.include_not_approved'));
+ $form->addInput(array('type'=>'combobox',
+ 'name'=>'mark_approved_action_options',
+ 'data'=>$mark_approved_action_options,
+ 'value'=>$cl_mark_approved_action_option));
+ $form->addInput(array('type'=>'submit','name'=>'btn_mark_approved','value'=>$i18n->get('button.submit')));
+ $smarty->assign('use_mark_approved', true);
}
// Controls for "Mark paid" block.
break;
}
}
+ // Save user_id in session.
+ $bean->saveDetachedAttribute('timesheet_user_id', $first_user_id);
// TODO: Improve this for "view_all_reports" situation.
// We may need to add "manage_all_timesheets" right.