Initial work done to support negative durations, some issues remain.
[timetracker.git] / WEB-INF / lib / ttReportHelper.class.php
index 1688abd..5fd2253 100644 (file)
@@ -513,7 +513,7 @@ class ttReportHelper {
     $res = $mdb2->query($sql);
     if (is_a($res, 'PEAR_Error')) die($res->getMessage());
     while ($val = $res->fetchRow()) {
-      $time = $val['time'] ? sec_to_time_fmt_hm($val['time']) : null;
+      $time = $val['time'] ? ttTimeHelper::minutesToDuration($val['time'] / 60) : null;
       $rowLabel = ttReportHelper::makeGroupByLabel($val['group_field'], $options);
       if ($options['show_cost']) {
         $decimalMark = $user->getDecimalMark();
@@ -595,7 +595,7 @@ class ttReportHelper {
     if (is_a($res, 'PEAR_Error')) die($res->getMessage());
 
     $val = $res->fetchRow();
-    $total_time = $val['time'] ? sec_to_time_fmt_hm($val['time']) : null;
+    $total_time = $val['time'] ? ttTimeHelper::minutesToDuration($val['time'] / 60) : null;
     if ($options['show_cost']) {
       $total_cost = $val['cost'];
       if (!$total_cost) $total_cost = '0.00';
@@ -737,8 +737,8 @@ class ttReportHelper {
     $isClient = $user->isClient();
 
     $config = new ttConfigHelper($user->getConfig());
-    $show_note_column = $bean->getAttribute('chnote') && !$config->getDefinedValue('report_note_on_separate_row');
-    $show_note_row = $bean->getAttribute('chnote') && $config->getDefinedValue('report_note_on_separate_row');
+    $show_note_column = $options['show_note'] && !$config->getDefinedValue('report_note_on_separate_row');
+    $show_note_row = $options['show_note'] && $config->getDefinedValue('report_note_on_separate_row');
 
     $items = ttReportHelper::getItems($options);
     $grouping = ttReportHelper::grouping($options);
@@ -1155,7 +1155,18 @@ class ttReportHelper {
     if ($user->isPluginEnabled('ap') && $user->isClient() && !$user->can('view_client_unapproved'))
       $options['approved'] = 1; // Restrict clients to approved records only.
     $options['timesheet'] = $bean->getAttribute('timesheet');
-    if (is_array($bean->getAttribute('users'))) $options['users'] = join(',', $bean->getAttribute('users'));
+
+    $active_users_in_bean = $bean->getAttribute('users_active');
+    if ($active_users_in_bean && is_array($active_users_in_bean)) {
+      $users = join(',', $active_users_in_bean);
+    }
+    $inactive_users_in_bean = $bean->getAttribute('users_inactive');
+    if ($inactive_users_in_bean && is_array($inactive_users_in_bean)) {
+      if ($users) $users .= ',';
+      $users .= join(',', $inactive_users_in_bean);
+    }
+    if ($users) $options['users'] = $users;
+
     $options['period'] = $bean->getAttribute('period');
     $options['period_start'] = $bean->getAttribute('start_date');
     $options['period_end'] = $bean->getAttribute('end_date');
@@ -1187,13 +1198,19 @@ class ttReportHelper {
     global $user;
 
     // Check users.
-    $users_in_bean = $bean->getAttribute('users');
-    if (is_array($users_in_bean)) {
+    $active_users_in_bean = $bean->getAttribute('users_active');
+    $inactive_users_in_bean = $bean->getAttribute('users_inactive');
+    if (is_array($active_users_in_bean) || is_array($inactive_users_in_bean)) {
       $users_in_group = ttGroupHelper::getUsers();
       foreach ($users_in_group as $user_in_group) {
         $valid_ids[] = $user_in_group['id'];
       }
-      foreach ($users_in_bean as $user_in_bean) {
+      foreach ($active_users_in_bean as $user_in_bean) {
+        if (!in_array($user_in_bean, $valid_ids)) {
+          return false;
+        }
+      }
+      foreach ($inactive_users_in_bean as $user_in_bean) {
         if (!in_array($user_in_bean, $valid_ids)) {
           return false;
         }