RTx-Statistics in 2.1 / 3.8
[freeside.git] / rt / share / html / RTx / Statistics / OpenStalled / Results.tsv
diff --git a/rt/share/html/RTx/Statistics/OpenStalled/Results.tsv b/rt/share/html/RTx/Statistics/OpenStalled/Results.tsv
new file mode 100644 (file)
index 0000000..2ec1e0c
--- /dev/null
@@ -0,0 +1,114 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%# 
+%# COPYRIGHT:
+%#  
+%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%#                                          <jesse@bestpractical.com>
+%# 
+%# (Except where explicitly superseded by other copyright notices)
+%# 
+%# 
+%# LICENSE:
+%# 
+%# This work is made available to you under the terms of Version 2 of
+%# the GNU General Public License. A copy of that license should have
+%# been provided with this software, but in any event can be snarfed
+%# from www.gnu.org.
+%# 
+%# This work is distributed in the hope that it will be useful, but
+%# WITHOUT ANY WARRANTY; without even the implied warranty of
+%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+%# General Public License for more details.
+%# 
+%# You should have received a copy of the GNU General Public License
+%# along with this program; if not, write to the Free Software
+%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# 
+%# 
+%# CONTRIBUTION SUBMISSION POLICY:
+%# 
+%# (The following paragraph is not intended to limit the rights granted
+%# to you to modify and distribute this software under the terms of
+%# the GNU General Public License and is only of importance to you if
+%# you choose to contribute your changes and enhancements to the
+%# community by submitting them to Best Practical Solutions, LLC.)
+%# 
+%# By intentionally submitting any modifications, corrections or
+%# derivatives to this work, or any other work intended for use with
+%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
+%# you are the copyright holder for those contributions and you grant
+%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
+%# royalty-free, perpetual, license to use, copy, create derivative
+%# works based on those contributions, and sublicense and distribute
+%# those contributions and any derivatives thereof.
+%# 
+%# END BPS TAGGED BLOCK }}}
+<%ARGS>
+@queues => @Statistics::OpenStalledQueueList
+</%ARGS>
+
+<%INIT>
+use RTx::Statistics;
+use Time::Local;
+
+  my $n = 0;
+  my @data; 
+  my @msgs;
+  my %totals;
+  my $QueryString;
+  my $now = new RT::Date($session{CurrentUser});
+  my $tix = new RT::Tickets($session{'CurrentUser'});
+
+  my %queues = map { 
+    $_ => 1;
+  } (@queues);
+
+  # set content type
+  $r->content_type('application/vnd.ms-excel');
+
+  $QueryString = "queues=" . join("&queues=", @queues);
+
+  my $queue = new RT::Queues($session{CurrentUser});
+  $queue->UnLimit;
+
+  my $QueueObj = new RT::Queue($session{'CurrentUser'});
+  $QueueObj->Load($queue);
+
+  # Put out some data about the generation of this file
+  $m->out("Tickets by Status by Queue for Queues:\t" . join(',', @queues) . "\tGenerated at:\t" . Statistics::FormatDate("%x %X", $now). "\n\n");
+
+  # basically the same as index.html
+
+  # Output header row
+  $m->out("Status");
+  for ( sort keys %queues) {
+      push @data, $_;
+      my $Queueobj = new RT::Queue($session{'CurrentUser'});
+      $Queueobj->Load($_);
+      next if !$Queueobj->CurrentUserHasRight('SeeQueue');
+      $m->out("\t" . $_);
+  }
+  $m->out("\tTotals\n");
+
+  foreach my $s (qw(new open stalled)) {
+    $m->out("$s");
+    my $total=0;
+    foreach my $q (sort keys %queues)  {
+      $tix = new RT::Tickets($session{'CurrentUser'});
+      $tix->LimitQueue(VALUE => "$q");
+      $tix->LimitStatus(VALUE => "$s");
+      $totals{$q} += $tix->Count; # Add up columns for each queue
+      $m->out("\t" . $tix->Count);
+      $total += $tix->Count;
+    }
+    $m->out("\t$total\n");
+    $totals{"Totals"} += $total;
+  }
+  $m->out("Totals");
+  foreach my $q (sort keys %queues) {
+    $m->out("\t" . $totals{$q});
+  }
+  $m->out("\t" . $totals{"Totals"} . "\n");
+
+  $m->abort();
+</%INIT>