posaune
[timetracker.git] / report.php
index 4a29c32..53c73ee 100644 (file)
 // +----------------------------------------------------------------------+
 
 require_once('initialize.php');
+import('ttConfigHelper');
 import('form.Form');
 import('form.ActionForm');
 import('ttReportHelper');
 import('ttGroupHelper');
 import('ttTimesheetHelper');
 
-// Access check.
+// Access checks.
 if (!(ttAccessAllowed('view_own_reports') || ttAccessAllowed('view_reports') || ttAccessAllowed('view_all_reports')  || ttAccessAllowed('view_client_reports'))) {
   header('Location: access_denied.php');
   exit();
 }
+// End of access checks.
+
+$config = new ttConfigHelper($user->getConfig());
 
 if ($user->isPluginEnabled('ap')) {
   $cl_mark_approved_select_option = $request->getParameter('mark_approved_select_options', ($request->isPost() ? null : @$_SESSION['mark_approved_select_option']));
@@ -87,7 +91,7 @@ $options = ttReportHelper::getReportOptions($bean);
 // - We can sssign items to invoices.
 // - We can assign items to a timesheet.
 // Determine these conditions separately.
-if ($bean->getAttribute('chapproved') && ($user->can('approve_reports') || $user->can('approve_all_eports')))
+if ($bean->getAttribute('chapproved') && ($user->can('approve_reports') || $user->can('approve_all_reports')))
   $useMarkApproved = true;
 if ($bean->getAttribute('chpaid') && $user->can('manage_invoices'))
   $useMarkPaid = true;
@@ -271,16 +275,34 @@ if ($request->isGet() && $use_checkboxes)
 if (ttReportHelper::grouping($options)) {
   $subtotals = ttReportHelper::getSubtotals($options);
   $smarty->assign('group_by_header', ttReportHelper::makeGroupByHeader($options));
+  if ($report_items) {
+    // Assign variables that are used to print subtotals.
+    $smarty->assign('print_subtotals', true);
+    $smarty->assign('first_pass', true);
+    $smarty->assign('prev_grouped_by', '');
+    $smarty->assign('cur_grouped_by', '');
+  }
 }
 $totals = ttReportHelper::getTotals($options);
 
-// Assign variables that are used to print subtotals.
-if ($report_items) {
-  $smarty->assign('print_subtotals', true);
-  $smarty->assign('first_pass', true);
-  $smarty->assign('prev_grouped_by', '');
-  $smarty->assign('cur_grouped_by', '');
-}
+// Determine column span for note field.
+$colspan = 1;
+if ($user->can('view_reports') || $user->can('view_all_reports') || $user->isClient()) $colspan++;
+if ($bean->getAttribute('chclient')) $colspan++;
+if ($bean->getAttribute('chproject')) $colspan++;
+if ($bean->getAttribute('chtask')) $colspan++;
+if ($bean->getAttribute('chcf_1')) $colspan++;
+if ($bean->getAttribute('chstart')) $colspan++;
+if ($bean->getAttribute('chfinish')) $colspan++;
+if ($bean->getAttribute('chduration')) $colspan++;
+if ($bean->getAttribute('chunits')) $colspan++;
+if ($bean->getAttribute('chcost')) $colspan++;
+if ($bean->getAttribute('chapproved')) $colspan++;
+if ($bean->getAttribute('chpaid')) $colspan++;
+if ($bean->getAttribute('chip')) $colspan++;
+if ($bean->getAttribute('chinvoice')) $colspan++;
+if ($bean->getAttribute('chtimesheet')) $colspan++;
+if ($bean->getAttribute('chfiles')) $colspan++;
 
 // Assign variables that are used to alternate color of rows for different dates.
 $smarty->assign('prev_date', '');
@@ -290,6 +312,8 @@ $smarty->assign('forms', array($form->getName()=>$form->toArray()));
 $smarty->assign('report_items', $report_items);
 $smarty->assign('subtotals', $subtotals);
 $smarty->assign('totals', $totals);
+$smarty->assign('note_on_separate_row', $user->getConfigOption('report_note_on_separate_row'));
+$smarty->assign('colspan', $colspan);
 $smarty->assign('bean', $bean);
 $smarty->assign('title', $i18n->get('title.report').": ".$totals['start_date']." - ".$totals['end_date']);
 $smarty->assign('content_page_name', 'report.tpl');