X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=tofile.php;h=5a190f4bb595e6505706283b8d8ca094db5a9197;hb=1c55e1b9d6da2173f7e946011908c02dd80df26d;hp=1b367e253936e1f9fa249f50142dadcaf93e9077;hpb=b401022733a9645ed701522585b2d57db936f5cc;p=timetracker.git
diff --git a/tofile.php b/tofile.php
index 1b367e25..5a190f4b 100644
--- a/tofile.php
+++ b/tofile.php
@@ -31,16 +31,17 @@ import('form.Form');
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.
@@ -57,13 +58,14 @@ $type = $request->getParameter('type');
$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->getKey('title.report')).'_'.$bean->mValues['start_date'].'_'.$bean->mValues['end_date'];
+$filename = strtolower($i18n->get('title.report')).'_'.$bean->mValues['start_date'].'_'.$bean->mValues['end_date'];
header('Pragma: public'); // This is needed for IE8 to download files over https.
header('Content-Type: text/html; charset=utf-8');
@@ -94,9 +96,12 @@ if ('xml' == $type) {
$val = time_to_decimal($val);
print "\t\n";
}
+ if ($bean->getAttribute('chunits')) {
+ print "\t\n";
+ }
if ($bean->getAttribute('chcost')) {
print "\tcanManageTeam() || $user->isClient())
+ if ($user->can('manage_invoices') || $user->isClient())
print $subtotal['cost'];
else
print $subtotal['expenses'];
@@ -110,7 +115,7 @@ if ('xml' == $type) {
print "\n";
print "\t\n";
- if ($user->canManageTeam() || $user->isClient()) print "\t\n";
+ if ($user->can('view_reports') || $user->can('view_all_reports') || $user->isClient()) print "\t\n";
if ($bean->getAttribute('chclient')) print "\t\n";
if ($bean->getAttribute('chproject')) print "\t\n";
if ($bean->getAttribute('chtask')) print "\t\n";
@@ -123,16 +128,21 @@ if ('xml' == $type) {
$duration = time_to_decimal($duration);
print "\t\n";
}
+ if ($bean->getAttribute('chunits')) print "\t\n";
if ($bean->getAttribute('chnote')) print "\t\n";
if ($bean->getAttribute('chcost')) {
print "\tcanManageTeam() || $user->isClient())
+ if ($user->can('manage_invoices') || $user->isClient())
print $item['cost'];
else
print $item['expense'];
print "]]>\n";
}
if ($bean->getAttribute('chpaid')) print "\t\n";
+ if ($bean->getAttribute('chip')) {
+ $ip = $item['modified'] ? $item['modified_ip'].' '.$item['modified'] : $item['created_ip'].' '.$item['created'];
+ print "\t\n";
+ }
if ($bean->getAttribute('chinvoice')) print "\t\n";
print "
\n";
@@ -160,13 +170,14 @@ if ('csv' == $type) {
$group_by_header = $custom_fields->fields[0]['label'];
else {
$key = 'label.'.$group_by;
- $group_by_header = $i18n->getKey($key);
+ $group_by_header = $i18n->get($key);
}
// Print headers.
print '"'.$group_by_header.'"';
- if ($bean->getAttribute('chduration')) print ',"'.$i18n->getKey('label.duration').'"';
- if ($bean->getAttribute('chcost')) print ',"'.$i18n->getKey('label.cost').'"';
+ 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";
// Print subtotals.
@@ -178,8 +189,9 @@ if ('csv' == $type) {
$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'].'"';
@@ -188,25 +200,27 @@ if ('csv' == $type) {
}
} else {
// Normal report. Print headers.
- print '"'.$i18n->getKey('label.date').'"';
- if ($user->canManageTeam() || $user->isClient()) print ',"'.$i18n->getKey('label.user').'"';
- if ($bean->getAttribute('chclient')) print ',"'.$i18n->getKey('label.client').'"';
- if ($bean->getAttribute('chproject')) print ',"'.$i18n->getKey('label.project').'"';
- if ($bean->getAttribute('chtask')) print ',"'.$i18n->getKey('label.task').'"';
+ print '"'.$i18n->get('label.date').'"';
+ 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('chcf_1')) print ',"'.$custom_fields->fields[0]['label'].'"';
- if ($bean->getAttribute('chstart')) print ',"'.$i18n->getKey('label.start').'"';
- if ($bean->getAttribute('chfinish')) print ',"'.$i18n->getKey('label.finish').'"';
- if ($bean->getAttribute('chduration')) print ',"'.$i18n->getKey('label.duration').'"';
- if ($bean->getAttribute('chnote')) print ',"'.$i18n->getKey('label.note').'"';
- if ($bean->getAttribute('chcost')) print ',"'.$i18n->getKey('label.cost').'"';
- if ($bean->getAttribute('chpaid')) print ',"'.$i18n->getKey('label.paid').'"';
- if ($bean->getAttribute('chinvoice')) print ',"'.$i18n->getKey('label.invoice').'"';
+ 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').'"';
+ if ($bean->getAttribute('chip')) print ',"'.$i18n->get('label.ip').'"';
+ if ($bean->getAttribute('chinvoice')) print ',"'.$i18n->get('label.invoice').'"';
print "\n";
// 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']).'"';
@@ -219,14 +233,19 @@ if ('csv' == $type) {
$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'].'"';
}
if ($bean->getAttribute('chpaid')) print ',"'.$item['paid'].'"';
+ if ($bean->getAttribute('chip')) {
+ $ip = $item['modified'] ? $item['modified_ip'].' '.$item['modified'] : $item['created_ip'].' '.$item['created'];
+ print ',"'.$ip.'"';
+ }
if ($bean->getAttribute('chinvoice')) print ',"'.str_replace('"','""',$item['invoice']).'"';
print "\n";
}