import('form.ActionForm');
import('ttReportHelper');
-// Access check.
-if (!ttAccessAllowed('view_own_reports')) {
+// Access checks.
+if (!(ttAccessAllowed('view_own_reports') || ttAccessAllowed('view_reports'))) {
header('Location: access_denied.php');
exit();
}
+// End of access checks.
// Use custom fields plugin if it is enabled.
if ($user->isPluginEnabled('cf')) {
require_once('plugins/CustomFields.class.php');
- $custom_fields = new CustomFields($user->team_id);
+ $custom_fields = new CustomFields($user->group_id);
}
// Report settings are stored in session bean before we get here.
$totals_only = $bean->getAttribute('chtotalsonly');
// Obtain items.
+$options = ttReportHelper::getReportOptions($bean);
if ($totals_only)
- $subtotals = ttReportHelper::getSubtotals($bean);
+ $subtotals = ttReportHelper::getSubtotals($bean, $options);
else
- $items = ttReportHelper::getItems($bean);
+ $items = ttReportHelper::getItems($bean, $options);
// Build a string to use as filename for the files being downloaded.
$filename = strtolower($i18n->get('title.report')).'_'.$bean->mValues['start_date'].'_'.$bean->mValues['end_date'];
$val = time_to_decimal($val);
print "\t<duration><![CDATA[".$val."]]></duration>\n";
}
+ if ($bean->getAttribute('chunits')) {
+ print "\t<units><![CDATA[".$subtotal['units']."]]></units>\n";
+ }
if ($bean->getAttribute('chcost')) {
print "\t<cost><![CDATA[";
- if ($user->canManageTeam() || $user->isClient())
+ if ($user->can('manage_invoices') || $user->isClient())
print $subtotal['cost'];
else
print $subtotal['expenses'];
print "<row>\n";
print "\t<date><![CDATA[".$item['date']."]]></date>\n";
- if ($user->canManageTeam() || $user->isClient()) print "\t<user><![CDATA[".$item['user']."]]></user>\n";
+ if ($user->can('view_reports') || $user->can('view_all_reports') || $user->isClient()) print "\t<user><![CDATA[".$item['user']."]]></user>\n";
if ($bean->getAttribute('chclient')) print "\t<client><![CDATA[".$item['client']."]]></client>\n";
if ($bean->getAttribute('chproject')) print "\t<project><![CDATA[".$item['project']."]]></project>\n";
if ($bean->getAttribute('chtask')) print "\t<task><![CDATA[".$item['task']."]]></task>\n";
$duration = time_to_decimal($duration);
print "\t<duration><![CDATA[".$duration."]]></duration>\n";
}
+ if ($bean->getAttribute('chunits')) print "\t<units><![CDATA[".$item['units']."]]></units>\n";
if ($bean->getAttribute('chnote')) print "\t<note><![CDATA[".$item['note']."]]></note>\n";
if ($bean->getAttribute('chcost')) {
print "\t<cost><![CDATA[";
- if ($user->canManageTeam() || $user->isClient())
+ if ($user->can('manage_invoices') || $user->isClient())
print $item['cost'];
else
print $item['expense'];
// Print headers.
print '"'.$group_by_header.'"';
if ($bean->getAttribute('chduration')) print ',"'.$i18n->get('label.duration').'"';
+ if ($bean->getAttribute('chunits')) print ',"'.$i18n->get('label.work_units_short').'"';
if ($bean->getAttribute('chcost')) print ',"'.$i18n->get('label.cost').'"';
print "\n";
$val = time_to_decimal($val);
print ',"'.$val.'"';
}
+ if ($bean->getAttribute('chunits')) print ',"'.$subtotal['units'].'"';
if ($bean->getAttribute('chcost')) {
- if ($user->canManageTeam() || $user->isClient())
+ if ($user->can('manage_invoices') || $user->isClient())
print ',"'.$subtotal['cost'].'"';
else
print ',"'.$subtotal['expenses'].'"';
} else {
// Normal report. Print headers.
print '"'.$i18n->get('label.date').'"';
- if ($user->canManageTeam() || $user->isClient()) print ',"'.$i18n->get('label.user').'"';
+ if ($user->can('view_reports') || $user->can('view_all_reports') || $user->isClient()) print ',"'.$i18n->get('label.user').'"';
if ($bean->getAttribute('chclient')) print ',"'.$i18n->get('label.client').'"';
if ($bean->getAttribute('chproject')) print ',"'.$i18n->get('label.project').'"';
if ($bean->getAttribute('chtask')) print ',"'.$i18n->get('label.task').'"';
if ($bean->getAttribute('chstart')) print ',"'.$i18n->get('label.start').'"';
if ($bean->getAttribute('chfinish')) print ',"'.$i18n->get('label.finish').'"';
if ($bean->getAttribute('chduration')) print ',"'.$i18n->get('label.duration').'"';
+ if ($bean->getAttribute('chunits')) print ',"'.$i18n->get('label.work_units_short').'"';
if ($bean->getAttribute('chnote')) print ',"'.$i18n->get('label.note').'"';
if ($bean->getAttribute('chcost')) print ',"'.$i18n->get('label.cost').'"';
if ($bean->getAttribute('chpaid')) print ',"'.$i18n->get('label.paid').'"';
// Print items.
foreach ($items as $item) {
print '"'.$item['date'].'"';
- if ($user->canManageTeam() || $user->isClient()) print ',"'.str_replace('"','""',$item['user']).'"';
+ if ($user->can('view_reports') || $user->can('view_all_reports') || $user->isClient()) print ',"'.str_replace('"','""',$item['user']).'"';
if ($bean->getAttribute('chclient')) print ',"'.str_replace('"','""',$item['client']).'"';
if ($bean->getAttribute('chproject')) print ',"'.str_replace('"','""',$item['project']).'"';
if ($bean->getAttribute('chtask')) print ',"'.str_replace('"','""',$item['task']).'"';
$val = time_to_decimal($val);
print ',"'.$val.'"';
}
+ if ($bean->getAttribute('chunits')) print ',"'.$item['units'].'"';
if ($bean->getAttribute('chnote')) print ',"'.str_replace('"','""',$item['note']).'"';
if ($bean->getAttribute('chcost')) {
- if ($user->canManageTeam() || $user->isClient())
+ if ($user->can('manage_invoices') || $user->isClient())
print ',"'.$item['cost'].'"';
else
print ',"'.$item['expense'].'"';