X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/47676f16efdde0b36a4ed09d2ab0476584aeb2a6..0092d0f0e70b66795f5ab0fcff4bfcef89842f3d:/WEB-INF/lib/ttReportHelper.class.php diff --git a/WEB-INF/lib/ttReportHelper.class.php b/WEB-INF/lib/ttReportHelper.class.php index 42463d08..612180a9 100644 --- a/WEB-INF/lib/ttReportHelper.class.php +++ b/WEB-INF/lib/ttReportHelper.class.php @@ -168,20 +168,18 @@ class ttReportHelper { // Add duration. if ($options['show_duration']) array_push($fields, "TIME_FORMAT(l.duration, '%k:%i') as duration"); - -// TODO: refactoring in progress down from here... The above is identical to getFavItems and is ready to merge. // 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,31 +188,30 @@ 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'); // Add IP address. - if ($canViewReports && $bean->getAttribute('chip')) { + if ($canViewReports && $options['show_ip']) { array_push($fields, 'l.created as created'); array_push($fields, 'l.created_ip as created_ip'); array_push($fields, 'l.modified as modified'); array_push($fields, 'l.modified_ip as modified_ip'); } - // Add invoice name if it is selected. - if (($canViewReports || $isClient) && $bean->getAttribute('chinvoice')) + if (($canViewReports || $isClient) && $options['show_invoice']) array_push($fields, 'i.name as invoice'); // Prepare sql query part for left joins. $left_joins = null; - if ($bean->getAttribute('chclient') || 'client' == $group_by_option) + if ($options['show_client'] || 'client' == $group_by_option) $left_joins .= " left join tt_clients c on (c.id = l.client_id)"; - if (($canViewReports || $isClient) && $bean->getAttribute('chinvoice')) + if (($canViewReports || $isClient) && $options['show_invoice']) $left_joins .= " left join tt_invoices i on (i.id = l.invoice_id and i.status = 1)"; if ($canViewReports || $isClient || $user->isPluginEnabled('ex')) $left_joins .= " left join tt_users u on (u.id = l.user_id)"; - if ($bean->getAttribute('chproject') || 'project' == $group_by_option) + if ($options['show_project'] || 'project' == $group_by_option) $left_joins .= " left join tt_projects p on (p.id = l.project_id)"; - if ($bean->getAttribute('chtask') || 'task' == $group_by_option) + if ($options['show_task'] || 'task' == $group_by_option) $left_joins .= " left join tt_tasks t on (t.id = l.task_id)"; if ($include_cf_1) { if ($cf_1_type == CustomFields::TYPE_TEXT) @@ -234,6 +231,8 @@ class ttReportHelper { // If we don't have expense items (such as when the Expenses plugin is desabled), the above is all sql we need, // with an exception of sorting part, that is added in the end. +// TODO: refactoring in progress down from here... The above is identical to getFavItems and is ready to merge. + // However, when we have expenses, we need to do a union with a separate query for expense items from tt_expense_items table. if ($bean->getAttribute('chcost') && $user->isPluginEnabled('ex')) { // if ex(penses) plugin is enabled @@ -452,7 +451,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'); @@ -1807,37 +1805,28 @@ class ttReportHelper { $options['period_start'] = $bean->getAttribute('start_date'); $options['period_end'] = $bean->getAttribute('end_date'); $options['show_client'] = $bean->getAttribute('chclient'); - -/* - * 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 - `show_ip` tinyint(4) NOT NULL default 0, # whether to show ip column - */ + $options['show_invoice'] = $bean->getAttribute('chinvoice'); + $options['show_paid'] = $bean->getAttribute('chpaid'); + $options['show_ip'] = $bean->getAttribute('chip'); $options['show_project'] = $bean->getAttribute('chproject'); $options['show_start'] = $bean->getAttribute('chstart'); $options['show_duration'] = $bean->getAttribute('chduration'); -/* - `show_cost` tinyint(4) NOT NULL default 0, # whether to show cost field - */ + $options['show_cost'] = $bean->getAttribute('chcost'); $options['show_task'] = $bean->getAttribute('chtask'); $options['show_end'] = $bean->getAttribute('chfinish'); -/* - `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 - */ + $options['show_note'] = $bean->getAttribute('chnote'); $options['show_custom_field_1'] = $bean->getAttribute('chcf_1'); - /* - `show_work_units` tinyint(4) NOT NULL default 0, # whether to show work units + $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'); /* * TODO: remaining fields to fill in... `status` tinyint(4) default 1, # favorite report status PRIMARY KEY (`id`) ); - */ +*/ return $options; }