X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=tofile.php;h=445b32d941e7f2189e3ed7ac8155140dda416eb4;hb=035970e91c0a4c132874656b8f13a88c46684717;hp=62632fa979ee2ef76f0edcc3209bc2956e95cfea;hpb=45c855269d952873285f7a835e82fc2b3eff3971;p=timetracker.git diff --git a/tofile.php b/tofile.php index 62632fa9..445b32d9 100644 --- a/tofile.php +++ b/tofile.php @@ -58,10 +58,11 @@ $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($options); else - $items = ttReportHelper::getItems($bean); + $items = ttReportHelper::getItems($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']; @@ -83,21 +84,26 @@ if ('xml' == $type) { print "\n"; print "\n"; - $group_by = $bean->getAttribute('group_by'); if ($totals_only) { - // Totals only report. Print subtotals. + // Totals only report. + $group_by_tag = ttReportHelper::makeGroupByXmlTag($options); + + // Print subtotals. foreach ($subtotals as $subtotal) { print "\n"; - print "\t<".$group_by.">\n"; + print "\t<".$group_by_tag.">\n"; if ($bean->getAttribute('chduration')) { $val = $subtotal['time']; - if($val && defined('EXPORT_DECIMAL_DURATION') && isTrue(EXPORT_DECIMAL_DURATION)) + if($val && isTrue(EXPORT_DECIMAL_DURATION)) $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']; @@ -111,7 +117,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"; @@ -120,14 +126,15 @@ if ('xml' == $type) { if ($bean->getAttribute('chfinish')) print "\t\n"; if ($bean->getAttribute('chduration')) { $duration = $item['duration']; - if($duration && defined('EXPORT_DECIMAL_DURATION') && isTrue(EXPORT_DECIMAL_DURATION)) + if($duration && isTrue(EXPORT_DECIMAL_DURATION)) $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']; @@ -156,21 +163,14 @@ if ('csv' == $type) { $bom = chr(239).chr(187).chr(191); // 0xEF 0xBB 0xBF in the beginning of the file is UTF8 BOM. print $bom; // Without this Excel does not display UTF8 characters properly. - $group_by = $bean->getAttribute('group_by'); if ($totals_only) { // Totals only report. - - // Determine group_by header. - if ('cf_1' == $group_by) - $group_by_header = $custom_fields->fields[0]['label']; - else { - $key = 'label.'.$group_by; - $group_by_header = $i18n->get($key); - } + $group_by_header = ttReportHelper::makeGroupByHeader($options); // 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"; @@ -179,12 +179,13 @@ if ('csv' == $type) { print '"'.$subtotal['name'].'"'; if ($bean->getAttribute('chduration')) { $val = $subtotal['time']; - if($val && defined('EXPORT_DECIMAL_DURATION') && isTrue(EXPORT_DECIMAL_DURATION)) + if($val && isTrue(EXPORT_DECIMAL_DURATION)) $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'].'"'; @@ -194,7 +195,7 @@ if ('csv' == $type) { } 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').'"'; @@ -202,6 +203,7 @@ if ('csv' == $type) { 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').'"'; @@ -212,7 +214,7 @@ if ('csv' == $type) { // 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']).'"'; @@ -221,13 +223,14 @@ if ('csv' == $type) { if ($bean->getAttribute('chfinish')) print ',"'.$item['finish'].'"'; if ($bean->getAttribute('chduration')) { $val = $item['duration']; - if($val && defined('EXPORT_DECIMAL_DURATION') && isTrue(EXPORT_DECIMAL_DURATION)) + if($val && isTrue(EXPORT_DECIMAL_DURATION)) $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'].'"';