X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/520f98abdb50f3ec9d0c0b27c7502b1c2a84034a..85d475278111ea1ed81fcd0dd5eef7140d1cd493:/WEB-INF/lib/ttReportHelper.class.php diff --git a/WEB-INF/lib/ttReportHelper.class.php b/WEB-INF/lib/ttReportHelper.class.php index bc60fb80..64128275 100644 --- a/WEB-INF/lib/ttReportHelper.class.php +++ b/WEB-INF/lib/ttReportHelper.class.php @@ -124,7 +124,7 @@ class ttReportHelper { $mdb2 = getConnection(); // Determine these once as they are used in multiple places in this function. - $canViewReports = $user->can('view_reports'); + $canViewReports = $user->can('view_reports') || $user->can('view_all_reports'); $isClient = $user->isClient(); $group_by_option = $options['group_by']; @@ -279,16 +279,15 @@ class ttReportHelper { if (($canViewReports || $isClient) && $options['show_invoice']) array_push($fields, 'i.name as invoice'); -// TODO: refactoring in progress down from here... The above is identical to getFavItems and is ready to merge. // Prepare sql query part for left joins. $left_joins = null; if ($canViewReports || $isClient) $left_joins .= " left join tt_users u on (u.id = ei.user_id)"; - 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 = ei.client_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 = ei.project_id)"; - if (($canViewReports || $isClient) && $bean->getAttribute('chinvoice')) + if (($canViewReports || $isClient) && $options['show_invoice']) $left_joins .= " left join tt_invoices i on (i.id = ei.invoice_id and i.status = 1)"; $where = ttReportHelper::getExpenseWhere($options); @@ -302,13 +301,13 @@ class ttReportHelper { // Determine sort part. $sort_part = ' order by '; - if ('no_grouping' == $group_by_option || 'date' == $group_by_option) + if ($group_by_option == null || 'no_grouping' == $group_by_option || 'date' == $group_by_option) $sort_part .= 'date'; else $sort_part .= $group_by_option.', date'; - if (($canViewReports || $isClient) && is_array($bean->getAttribute('users')) && 'user' != $group_by_option) + if (($canViewReports || $isClient) && $options['users'] && 'user' != $group_by_option) $sort_part .= ', user, type'; - if ($bean->getAttribute('chstart')) + if ($options['show_start']) $sort_part .= ', unformatted_start'; $sort_part .= ', id'; @@ -397,7 +396,7 @@ class ttReportHelper { $mdb2 = getConnection(); // Determine these once as they are used in multiple places in this function. - $canViewReports = $user->can('view_reports'); + $canViewReports = $user->can('view_reports') || $user->can('view_all_reports'); $isClient = $user->isClient(); $group_by_option = $options['group_by']; @@ -574,11 +573,11 @@ class ttReportHelper { // Determine sort part. $sort_part = ' order by '; - if ($group_by_option == null || 'no_grouping' == $group_by_option || 'date' == $group_by_option) // TODO: fix DB for NULL values in group_by field. + if ($group_by_option == null || 'no_grouping' == $group_by_option || 'date' == $group_by_option) $sort_part .= 'date'; else $sort_part .= $group_by_option.', date'; - if (($canViewReports || $isClient) /*&& is_array($bean->getAttribute('users'))*/ && 'user' != $group_by_option) + if (($canViewReports || $isClient) && $options['users'] && 'user' != $group_by_option) $sort_part .= ', user, type'; if ($options['show_start']) $sort_part .= ', unformatted_start'; @@ -1814,16 +1813,8 @@ class ttReportHelper { $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['show_totals_only'] = $bean->getAttribute('chtotalsonly'); $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; }