X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttReportHelper.class.php;h=966865fbb673934fe8b4aafc0e07efe730d85b7c;hb=ed41335d63e71a11d30e92f4367106e9398adf9d;hp=40b6a0476214c73e31d6610eba96fd7e35776fd0;hpb=3b73ad719677dcb639befd1788f8f9d1ee6485cf;p=timetracker.git
diff --git a/WEB-INF/lib/ttReportHelper.class.php b/WEB-INF/lib/ttReportHelper.class.php
index 40b6a047..966865fb 100644
--- a/WEB-INF/lib/ttReportHelper.class.php
+++ b/WEB-INF/lib/ttReportHelper.class.php
@@ -30,6 +30,7 @@ import('ttClientHelper');
import('DateAndTime');
import('Period');
import('ttTimeHelper');
+import('ttConfigHelper');
require_once(dirname(__FILE__).'/../../plugins/CustomFields.class.php');
@@ -512,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 = ttTimeHelper::minutesToDuration($val['time'] / 60);
$rowLabel = ttReportHelper::makeGroupByLabel($val['group_field'], $options);
if ($options['show_cost']) {
$decimalMark = $user->getDecimalMark();
@@ -594,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 = ttTimeHelper::minutesToDuration($val['time'] / 60);
if ($options['show_cost']) {
$total_cost = $val['cost'];
if (!$total_cost) $total_cost = '0.00';
@@ -735,6 +736,10 @@ class ttReportHelper {
$canViewReports = $user->can('view_reports') || $user->can('view_all_reports');
$isClient = $user->isClient();
+ $config = new ttConfigHelper($user->getConfig());
+ $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);
if ($grouping)
@@ -868,6 +873,8 @@ class ttReportHelper {
$body .= '
'.$i18n->get('label.duration').' | ';
if ($options['show_work_units'])
$body .= ''.$i18n->get('label.work_units_short').' | ';
+ if ($show_note_column)
+ $body .= ''.$i18n->get('label.note').' | ';
if ($options['show_cost'])
$body .= ''.$i18n->get('label.cost').' | ';
if ($options['show_approved'])
@@ -914,6 +921,7 @@ class ttReportHelper {
if ($options['show_end']) $body .= ' | ';
if ($options['show_duration']) $body .= ''.$subtotals[$prev_grouped_by]['time'].' | ';
if ($options['show_work_units']) $body .= ''.$subtotals[$prev_grouped_by]['units'].' | ';
+ if ($show_note_column) $body .= ' | ';
if ($options['show_cost']) {
$body .= '';
$body .= ($canViewReports || $isClient) ? $subtotals[$prev_grouped_by]['cost'] : $subtotals[$prev_grouped_by]['expenses'];
@@ -953,6 +961,8 @@ class ttReportHelper {
$body .= ' | '.$record['duration'].' | ';
if ($options['show_work_units'])
$body .= ''.$record['units'].' | ';
+ if ($show_note_column)
+ $body .= ''.htmlspecialchars($record['note']).' | ';
if ($options['show_cost'])
$body .= ''.$record['cost'].' | ';
if ($options['show_approved']) {
@@ -975,7 +985,7 @@ class ttReportHelper {
if ($options['show_timesheet'])
$body .= ''.htmlspecialchars($record['timesheet']).' | ';
$body .= '';
- if ($options['show_note'] && $record['note']) {
+ if ($show_note_row && $record['note']) {
$body .= '';
$body .= ''.$i18n->get('label.note').': | ';
$body .= ''.$record['note'].' | ';
@@ -1001,6 +1011,7 @@ class ttReportHelper {
if ($options['show_end']) $body .= ' | ';
if ($options['show_duration']) $body .= ''.$subtotals[$cur_grouped_by]['time'].' | ';
if ($options['show_work_units']) $body .= ''.$subtotals[$cur_grouped_by]['units'].' | ';
+ if ($show_note_column) $body .= ' | ';
if ($options['show_cost']) {
$body .= '';
$body .= ($canViewReports || $isClient) ? $subtotals[$cur_grouped_by]['cost'] : $subtotals[$cur_grouped_by]['expenses'];
@@ -1027,6 +1038,7 @@ class ttReportHelper {
if ($options['show_end']) $body .= ' | | ';
if ($options['show_duration']) $body .= ''.$totals['time'].' | ';
if ($options['show_work_units']) $body .= ''.$totals['units'].' | ';
+ if ($show_note_column) $body .= ' | ';
if ($options['show_cost']) {
$body .= ''.htmlspecialchars($user->currency).' ';
$body .= ($canViewReports || $isClient) ? $totals['cost'] : $totals['expenses'];
@@ -1143,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');
@@ -1175,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;
}
|