Added last access handling.
[timetracker.git] / tofile.php
index 299b4a1..1b367e2 100644 (file)
@@ -32,7 +32,7 @@ import('form.ActionForm');
 import('ttReportHelper');
 
 // Access check.
-if (!ttAccessCheck(right_view_reports)) {
+if (!ttAccessAllowed('view_own_reports')) {
   header('Location: access_denied.php');
   exit();
 }
@@ -53,7 +53,7 @@ $bean = new ActionForm('reportBean', new Form('reportForm'), $request);
 $type = $request->getParameter('type');
 
 // Also, there are 2 variations of report: totals only, or normal. Totals only means that the report
-// is grouped by (either date, user, client, project, task or cf_1) and user only needs to see subtotals by group.
+// is grouped by (either date, user, client, project, task, or cf_1) and user only needs to see subtotals by group.
 $totals_only = $bean->getAttribute('chtotalsonly');
 
 // Obtain items.
@@ -62,6 +62,9 @@ if ($totals_only)
 else
   $items = ttReportHelper::getItems($bean);
 
+// 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'];
+
 header('Pragma: public'); // This is needed for IE8 to download files over https.
 header('Content-Type: text/html; charset=utf-8');
 header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
@@ -74,7 +77,7 @@ header('Cache-Control: private', false);
 // 1) entries exported to xml
 if ('xml' == $type) {
   header('Content-Type: application/xml');
-  header('Content-Disposition: attachment; filename="timesheet.xml"');
+  header('Content-Disposition: attachment; filename="'.$filename.'.xml"');
 
   print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
   print "<rows>\n";
@@ -129,6 +132,7 @@ if ('xml' == $type) {
           print $item['expense'];
         print "]]></cost>\n";
       }
+      if ($bean->getAttribute('chpaid')) print "\t<paid><![CDATA[".$item['paid']."]]></paid>\n";
       if ($bean->getAttribute('chinvoice')) print "\t<invoice><![CDATA[".$item['invoice']."]]></invoice>\n";
 
       print "</row>\n";
@@ -141,7 +145,7 @@ if ('xml' == $type) {
 // 2) entries exported to csv
 if ('csv' == $type) {
   header('Content-Type: application/csv');
-  header('Content-Disposition: attachment; filename="timesheet.csv"');
+  header('Content-Disposition: attachment; filename="'.$filename.'.csv"');
 
   // Print UTF8 BOM first to identify encoding.
   $bom = chr(239).chr(187).chr(191); // 0xEF 0xBB 0xBF in the beginning of the file is UTF8 BOM.
@@ -195,6 +199,7 @@ if ('csv' == $type) {
     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').'"';
     print "\n";
 
@@ -221,6 +226,7 @@ if ('csv' == $type) {
         else
           print ',"'.$item['expense'].'"';
       }
+      if ($bean->getAttribute('chpaid')) print ',"'.$item['paid'].'"';
       if ($bean->getAttribute('chinvoice')) print ',"'.str_replace('"','""',$item['invoice']).'"';
       print "\n";
     }