// Prepare a query for time items in tt_log table.
$fields = array(); // An array of fields for database query.
- array_push($fields, 'l.id as id');
+ array_push($fields, 'l.id');
+ array_push($fields, 'l.user_id');
array_push($fields, '1 as type'); // Type 1 is for tt_log entries.
- array_push($fields, 'l.date as date');
+ array_push($fields, 'l.date');
if($canViewReports || $isClient)
array_push($fields, 'u.name as user');
// Add client name if it is selected.
if ($user->getConfigOption('unit_totals_only'))
array_push($fields, "null as units");
else {
- $firstUnitThreshold = $user->getConfigInt('1st_unit_threshold');
- $minutesInUnit = $user->getConfigInt('minutes_in_unit');
+ $firstUnitThreshold = $user->getConfigInt('1st_unit_threshold', 0);
+ $minutesInUnit = $user->getConfigInt('minutes_in_unit', 15);
array_push($fields, "if(l.billable = 0 or time_to_sec(l.duration)/60 < $firstUnitThreshold, 0, ceil(time_to_sec(l.duration)/60/$minutesInUnit)) as units");
}
}
}
// Add paid status.
if ($canViewReports && $options['show_paid'])
- array_push($fields, 'l.paid as paid');
+ array_push($fields, 'l.paid');
// Add IP address.
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');
+ array_push($fields, 'l.created');
+ array_push($fields, 'l.created_ip');
+ array_push($fields, 'l.modified');
+ array_push($fields, 'l.modified_ip');
}
// Add invoice name if it is selected.
if (($canViewReports || $isClient) && $options['show_invoice'])
$fields = array(); // An array of fields for database query.
array_push($fields, 'ei.id');
+ array_push($fields, 'ei.user_id');
array_push($fields, '2 as type'); // Type 2 is for tt_expense_items entries.
array_push($fields, 'ei.date');
if($canViewReports || $isClient)
array_push($fields, 'ei.cost as expense');
// Add paid status.
if ($canViewReports && $options['show_paid'])
- array_push($fields, 'ei.paid as paid');
+ array_push($fields, 'ei.paid');
// Add IP address.
if ($canViewReports && $options['show_ip']) {
- array_push($fields, 'ei.created as created');
- array_push($fields, 'ei.created_ip as created_ip');
- array_push($fields, 'ei.modified as modified');
- array_push($fields, 'ei.modified_ip as modified_ip');
+ array_push($fields, 'ei.created');
+ array_push($fields, 'ei.created_ip');
+ array_push($fields, 'ei.modified');
+ array_push($fields, 'ei.modified_ip');
}
// Add invoice name if it is selected.
if (($canViewReports || $isClient) && $options['show_invoice'])
static function getTotals($options)
{
global $user;
-
$mdb2 = getConnection();
+ $trackingMode = $user->getTrackingMode();
+ $decimalMark = $user->getDecimalMark();
$where = ttReportHelper::getWhere($options);
// Prepare parts.
$time_part = "sum(time_to_sec(l.duration)) as time";
if ($options['show_work_units']) {
- $units_part = $user->unit_totals_only ? ", null as units" : ", sum(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";
+ $unitTotalsOnly = $user->getConfigOption('unit_totals_only');
+ $firstUnitThreshold = $user->getConfigInt('1st_unit_threshold', 0);
+ $minutesInUnit = $user->getConfigInt('minutes_in_unit', 15);
+ $units_part = $unitTotalsOnly ? ", null as units" : ", sum(if(l.billable = 0 or time_to_sec(l.duration)/60 < $firstUnitThreshold, 0, ceil(time_to_sec(l.duration)/60/$minutesInUnit))) as units";
}
if ($options['show_cost']) {
- if (MODE_TIME == $user->tracking_mode)
+ if (MODE_TIME == $trackingMode)
$cost_part = ", sum(cast(l.billable * coalesce(u.rate, 0) * time_to_sec(l.duration)/3600 as decimal(10,2))) as cost, null as expenses";
else
$cost_part = ", sum(cast(l.billable * coalesce(upb.rate, 0) * time_to_sec(l.duration)/3600 as decimal(10,2))) as cost, null as expenses";
$cost_part = ", null as cost, null as expenses";
}
if ($options['show_cost']) {
- if (MODE_TIME == $user->tracking_mode) {
+ if (MODE_TIME == $trackingMode) {
$left_joins = "left join tt_users u on (l.user_id = u.id)";
} else {
$left_joins = "left join tt_user_project_binds upb on (l.user_id = upb.user_id and l.project_id = upb.project_id)";
if ($options['show_cost']) {
$total_cost = $val['cost'];
if (!$total_cost) $total_cost = '0.00';
- if ('.' != $user->decimal_mark)
- $total_cost = str_replace('.', $user->decimal_mark, $total_cost);
+ if ('.' != $decimalMark)
+ $total_cost = str_replace('.', $decimalMark, $total_cost);
$total_expenses = $val['expenses'];
if (!$total_expenses) $total_expenses = '0.00';
- if ('.' != $user->decimal_mark)
- $total_expenses = str_replace('.', $user->decimal_mark, $total_expenses);
+ if ('.' != $decimalMark)
+ $total_expenses = str_replace('.', $decimalMark, $total_expenses);
}
+ $dateFormat = $user->getDateFormat();
if ($options['period'])
- $period = new Period($options['period'], new DateAndTime($user->date_format));
+ $period = new Period($options['period'], new DateAndTime($dateFormat));
else {
$period = new Period();
$period->setPeriod(
- new DateAndTime($user->date_format, $options['period_start']),
- new DateAndTime($user->date_format, $options['period_end']));
+ new DateAndTime($dateFormat, $options['period_start']),
+ new DateAndTime($dateFormat, $options['period_end']));
}
$totals['start_date'] = $period->getStartDate();
$workUnits = $options['show_work_units'];
if ($workUnits) {
$unitTotalsOnly = $user->getConfigOption('unit_totals_only');
- $firstUnitThreshold = $user->getConfigInt('1st_unit_threshold');
+ $firstUnitThreshold = $user->getConfigInt('1st_unit_threshold', 0);
$minutesInUnit = $user->getConfigInt('minutes_in_unit', 15);
if ($unitTotalsOnly)
$work_unit_part = ", if (sum(l.billable * time_to_sec(l.duration)/60) < $firstUnitThreshold, 0, ceil(sum(l.billable * time_to_sec(l.duration)/60/$minutesInUnit))) as units";
return $key; // No need to format.
global $user;
- if ($user->date_format == DB_DATEFORMAT)
+ if ($user->getDateFormat() == DB_DATEFORMAT)
return $key; // No need to format.
$label = $key;