]> wagnertech.de Git - timetracker.git/blobdiff - WEB-INF/lib/ttReportHelper.class.php
More refactoring in reports.
[timetracker.git] / WEB-INF / lib / ttReportHelper.class.php
index be472df0ec9ed195be3208de7daa6c13981f1a4a..71fcb08f7a284320042728a98673159a2f5a1a03 100644 (file)
@@ -141,15 +141,13 @@ class ttReportHelper {
     if ($options['show_client'] || 'client' == $group_by_option)
       array_push($fields, 'c.name as client');
     // Add project name if it is selected.
-
-// TODO: refactoring in progress down from here... The above is identical to getFavItems and is ready to merge.
-    if ($bean->getAttribute('chproject') || 'project' == $group_by_option)
+    if ($options['show_project'] || 'project' == $group_by_option)
       array_push($fields, 'p.name as project');
     // Add task name if it is selected.
-    if ($bean->getAttribute('chtask') || 'task' == $group_by_option)
+    if ($options['show_task'] || 'task' == $group_by_option)
       array_push($fields, 't.name as task');
     // Add custom field.
-    $include_cf_1 = $bean->getAttribute('chcf_1') || 'cf_1' == $group_by_option;
+    $include_cf_1 = $options['show_custom_field_1'] || 'cf_1' == $group_by_option;
     if ($include_cf_1) {
       $custom_fields = new CustomFields($user->group_id);
       $cf_1_type = $custom_fields->fields[0]['type'];
@@ -160,28 +158,28 @@ class ttReportHelper {
       }
     }
     // Add start time.
-    if ($bean->getAttribute('chstart')) {
+    if ($options['show_start']) {
       array_push($fields, "l.start as unformatted_start");
       array_push($fields, "TIME_FORMAT(l.start, '%k:%i') as start");
     }
     // Add finish time.
-    if ($bean->getAttribute('chfinish'))
+    if ($options['show_end'])
       array_push($fields, "TIME_FORMAT(sec_to_time(time_to_sec(l.start) + time_to_sec(l.duration)), '%k:%i') as finish");
     // Add duration.
-    if ($bean->getAttribute('chduration'))
+    if ($options['show_duration'])
       array_push($fields, "TIME_FORMAT(l.duration, '%k:%i') as duration");
     // Add work units.
-    if ($bean->getAttribute('chunits')) {
+    if ($options['show_work_units']) {
       if ($user->unit_totals_only)
         array_push($fields, "null as units");
       else
-       array_push($fields, "if(l.billable = 0 or time_to_sec(l.duration)/60 < $user->first_unit_threshold, 0, ceil(time_to_sec(l.duration)/60/$user->minutes_in_unit)) as units");
+        array_push($fields, "if(l.billable = 0 or time_to_sec(l.duration)/60 < $user->first_unit_threshold, 0, ceil(time_to_sec(l.duration)/60/$user->minutes_in_unit)) as units");
     }
     // Add note.
-    if ($bean->getAttribute('chnote'))
+    if ($options['show_note'])
       array_push($fields, 'l.comment as note');
     // Handle cost.
-    $includeCost = $bean->getAttribute('chcost');
+    $includeCost = $options['show_cost'];
     if ($includeCost) {
       if (MODE_TIME == $user->tracking_mode)
         array_push($fields, "cast(l.billable * coalesce(u.rate, 0) * time_to_sec(l.duration)/3600 as decimal(10,2)) as cost");   // Use default user rate.
@@ -190,8 +188,10 @@ class ttReportHelper {
       array_push($fields, "null as expense"); 
     }
     // Add paid status.
-    if ($canViewReports && $bean->getAttribute('chpaid'))
+    if ($canViewReports && $options['show_paid'])
       array_push($fields, 'l.paid as paid');
+
+// TODO: refactoring in progress down from here... The above is identical to getFavItems and is ready to merge.
     // Add IP address.
     if ($canViewReports && $bean->getAttribute('chip')) {
       array_push($fields, 'l.created as created');
@@ -452,7 +452,6 @@ class ttReportHelper {
       else
         array_push($fields, "if(l.billable = 0 or time_to_sec(l.duration)/60 < $user->first_unit_threshold, 0, ceil(time_to_sec(l.duration)/60/$user->minutes_in_unit)) as units");
     }
-
     // Add note.
     if ($options['show_note'])
       array_push($fields, 'l.comment as note');
@@ -1811,33 +1810,30 @@ class ttReportHelper {
 /*
  * TODO: remaining fields to fill in...
   `show_invoice` tinyint(4) NOT NULL default 0,          # whether to show invoice column
-  `show_paid` tinyint(4) NOT NULL default 0,             # whether to show paid column
+*/
+    $options['show_paid'] = $bean->getAttribute('chpaid');
+/*
   `show_ip` tinyint(4) NOT NULL default 0,               # whether to show ip column
-  `show_project` tinyint(4) NOT NULL default 0,          # whether to show project column
- */
+*/
+    $options['show_project'] = $bean->getAttribute('chproject');
     $options['show_start'] = $bean->getAttribute('chstart');
-/*
-  `show_start` tinyint(4) NOT NULL default 0,            # whether to show start field
-  `show_duration` tinyint(4) NOT NULL default 0,         # whether to show duration field
-  `show_cost` tinyint(4) NOT NULL default 0,             # whether to show cost field
-  `show_task` tinyint(4) NOT NULL default 0,             # whether to show task column
- */
+    $options['show_duration'] = $bean->getAttribute('chduration');
+    $options['show_cost'] = $bean->getAttribute('chcost');
+    $options['show_task'] = $bean->getAttribute('chtask');
     $options['show_end'] = $bean->getAttribute('chfinish');
-    /*
-  `show_end` tinyint(4) NOT NULL default 0,              # whether to show end field
-  `show_note` tinyint(4) NOT NULL default 0,             # whether to show note column
-  `show_custom_field_1` tinyint(4) NOT NULL default 0,   # whether to show custom field 1
-  `show_work_units` tinyint(4) NOT NULL default 0,       # whether to show work units
+    $options['show_note'] = $bean->getAttribute('chnote');
+    $options['show_custom_field_1'] = $bean->getAttribute('chcf_1');
+    $options['show_work_units'] = $bean->getAttribute('chunits');
+/*
   `show_totals_only` tinyint(4) NOT NULL default 0,      # whether to show totals only
- **/
-  $options['group_by'] = $bean->getAttribute('group_by');
+*/
+    $options['group_by'] = $bean->getAttribute('group_by');
 /*
  * TODO: remaining fields to fill in...
-  `group_by` varchar(20) default NULL,                   # group by field
   `status` tinyint(4) default 1,                         # favorite report status
   PRIMARY KEY (`id`)
 );
-     */
+*/
     return $options;
   }