+if (ttReportHelper::grouping($options)) {
+ $subtotals = ttReportHelper::getSubtotals($options);
+ $smarty->assign('group_by_header', ttReportHelper::makeGroupByHeader($options));
+}
+$totals = ttReportHelper::getTotals($options);
+
+// TODO: Determine if we can create a timesheet out of this report.
+// There must be only one user, and nothing assigned to existing timesheets.
+$canCreateTimesheet = false;
+if ($user->isPluginEnabled('ts') && count($report_items) > 0 &&
+ ($user->can('manage_own_timesheets') || $user->can('manage_timesheets'))) {
+
+ $canCreateTimesheet = true; // Start with true and reset if we can't.
+ $first_user_id = null;
+ foreach ($report_items as $report_item) {
+ // Check user id.
+ if (!$first_user_id)
+ $first_user_id = $report_item['user_id'];
+ else {
+ if ($report_item['user_id'] != $first_user_id) {
+ // We have items for multiple users.
+ $canCreateTimesheet = false;
+ break;
+ }
+ }
+ // Check timesheet id.
+ if ($report_item['timesheet_id']) {
+ // We have an item already assigned to a timesheet.
+ $canCreateTimesheet = false;
+ 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.
+}