X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=topdf.php;h=68a1eb5c376b19ca7d389f6c748ce6b4577974ac;hb=73bd55c5aaa9459806ef9fa899cc5a24513727bc;hp=3f0a6dc758ca910b75446b37cd11ff8cc530b9ce;hpb=029e1daa627ad332edd64bba79f5415fcaf1407d;p=timetracker.git diff --git a/topdf.php b/topdf.php index 3f0a6dc7..68a1eb5c 100644 --- a/topdf.php +++ b/topdf.php @@ -35,6 +35,12 @@ import('form.Form'); import('form.ActionForm'); import('ttReportHelper'); +// Access check. +if (!ttAccessAllowed('view_own_reports')) { + header('Location: access_denied.php'); + exit(); +} + // Check whether TCPDF library is available. if (!file_exists('WEB-INF/lib/tcpdf/')) die('TCPDF library is not found in WEB-INF/lib/tcpdf/'); @@ -42,14 +48,8 @@ if (!file_exists('WEB-INF/lib/tcpdf/')) // Include TCPDF library. require_once('WEB-INF/lib/tcpdf/tcpdf.php'); -// Access check. -if (!ttAccessCheck(right_view_reports)) { - header('Location: access_denied.php'); - exit(); -} - // Use custom fields plugin if it is enabled. -if (in_array('cf', explode(',', $user->plugins))) { +if ($user->isPluginEnabled('cf')) { require_once('plugins/CustomFields.class.php'); $custom_fields = new CustomFields($user->team_id); } @@ -87,6 +87,9 @@ if ($items && 'no_grouping' != $group_by) { $cur_grouped_by = ''; } +// 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']; + // Start preparing HTML to build PDF from. $styleHeader = 'style="background-color:#a6ccf7;"'; $styleSubtotal = 'style="background-color:#e0e0e0;"'; @@ -156,10 +159,12 @@ if ($totals_only) { if ($bean->getAttribute('chduration')) { $colspan++; $html .= "".$i18n->getKey('label.duration').''; } if ($bean->getAttribute('chnote')) { $colspan++; $html .= ''.$i18n->getKey('label.note').''; } if ($bean->getAttribute('chcost')) { $colspan++; $html .= "".$i18n->getKey('label.cost').''; } + if ($bean->getAttribute('chpaid')) { $colspan++; $html .= "".$i18n->getKey('label.paid').''; } + if ($bean->getAttribute('chip')) { $colspan++; $html .= "".$i18n->getKey('label.ip').''; } if ($bean->getAttribute('chinvoice')) { $colspan++; $html .= ''.$i18n->getKey('label.invoice').''; } $html .= ''; $html .= ''; - + foreach ($items as $item) { // Print a subtotal for a block of grouped values. $cur_date = $item['date']; @@ -205,6 +210,8 @@ if ($totals_only) { $html .= $subtotals[$prev_grouped_by]['expenses']; $html .= ''; } + if ($bean->getAttribute('chpaid')) $html .= ''; + if ($bean->getAttribute('chip')) $html .= ''; if ($bean->getAttribute('chinvoice')) $html .= ''; $html .= ''; $html .= ' '; @@ -232,13 +239,23 @@ if ($totals_only) { $html .= $item['expense']; $html .= ''; } + if ($bean->getAttribute('chpaid')) { + $html .= ''; + $html .= $item['paid'] == 1 ? $i18n->getKey('label.yes') : $i18n->getKey('label.no'); + $html .= ''; + } + if ($bean->getAttribute('chip')) { + $html .= ''; + $html .= $item['modified'] ? $item['modified_ip'].' '.$item['modified'] : $item['created_ip'].' '.$item['created']; + $html .= ''; + } if ($bean->getAttribute('chinvoice')) $html .= ''.htmlspecialchars($item['invoice']).''; $html .= ''; - + $prev_date = $item['date']; if ($print_subtotals) $prev_grouped_by = $item['grouped_by']; } - + // Print a terminating subtotal. if ($print_subtotals) { $html .= ''; @@ -280,10 +297,12 @@ if ($totals_only) { $html .= $subtotals[$prev_grouped_by]['expenses']; $html .= ''; } + if ($bean->getAttribute('chpaid')) $html .= ''; + if ($bean->getAttribute('chip')) $html .= ''; if ($bean->getAttribute('chinvoice')) $html .= ''; $html .= ''; } - + // Print totals. $html .= ' '; $html .= ''; @@ -302,9 +321,11 @@ if ($totals_only) { if ($user->canManageTeam() || $user->isClient()) $html .= $totals['cost']; else - $html .= $totals['expenses']; + $html .= $totals['expenses']; $html .= ''; } + if ($bean->getAttribute('chpaid')) $html .= ''; + if ($bean->getAttribute('chip')) $html .= ''; if ($bean->getAttribute('chinvoice')) $html .= ''; $html .= ''; $html .= ''; @@ -327,7 +348,7 @@ header('Cache-Control: post-check=0, pre-check=0', false); header('Cache-Control: private', false); header('Content-Type: application/pdf'); -header('Content-Disposition: attachment; filename="timesheet.pdf"'); +header('Content-Disposition: attachment; filename="'.$filename.'.pdf"'); // Beginning of TCPDF code here. @@ -337,17 +358,17 @@ class ttPDF extends TCPDF { public $image_file = 'images/tt_logo.png'; // Image file for the logo in header. public $page_word = 'Page'; // Localized "Page" word in footer, ex: Page 1/2. - + // SetImageFile - sets image file name. public function SetImageFile($imgFile) { $this->image_file = $imgFile; } - + // SetPageWord - sets page word for footer. public function SetPageWord($pageWord) { $this->page_word = $pageWord; } - + // Page header. public function Header() { // Print logo, which is the only element of our custom header. @@ -404,6 +425,6 @@ $pdf->writeHTML($html, true, false, false, false, ''); // Close and output PDF document. // $pdf->Output('timesheet.pdf', 'I'); // This will display inline in browser. -$pdf->Output('timesheet.pdf', 'D'); // D is for downloads. +$pdf->Output($filename.'.pdf', 'D'); // D is for downloads. // End of of TCPDF code.