integrate RTx::Statistics package, part of merging spiritone RT changes (#1661)
[freeside.git] / rt / html / Reports / Activity / ActivitySummary.html
1 <&|Elements/Wrapper, %ARGS, title => loc("Activity summary"),
2     path => "Reports/Activity/ActivitySummary.html",
3     &>
4
5 <& Elements/MiniPlot, data => \%queues &>
6
7 <table style="width: 100%">
8 <tr class="titlerow">
9 <th>Queue</th>
10 % for my $status (sort keys %status) {
11 <th><% $status %></th>
12 % }
13 <th>Total</th>
14 </tr>
15 % for my $queue (sort keys %queues) {
16 <th class="label"><% $queue %></th>
17 % for my $status (sort keys %status) {
18 <td><% $queues{$queue}{$status} || 0 %>
19 % }
20 <td><% $total{$queue} %></td>
21 </tr>
22 % }
23 <tr class="grandtotal">
24 <th class="label" >Grand Total</th>
25 % for my $status (sort keys %status) {
26 <td><% $status{$status} %></td>
27 % }
28 <td><% $total %></td>
29 </table>
30 </&>
31 <%args>
32 $query => 'id > 0'
33 $start => "2005/01/01"
34 $end   => "2006/01/01"
35 </%args>
36 <%init>
37
38 my $tickets = RT::Tickets->new($session{'CurrentUser'});
39 $tickets->FromSQL($query . " AND ( Updated >= '$start' AND Updated <= '$end')");
40
41 my %queues;
42 my %status;
43 my %total;
44 my $total;
45 while (my $ticket = $tickets->Next) {
46     my $txns = $ticket->Transactions;
47     $txns->Limit(FIELD => 'Created', OPERATOR => '>=', VALUE => $start);
48     $txns->Limit(FIELD => 'Created', OPERATOR => '<=', VALUE => $end);
49     $txns->Limit(FIELD => 'Type', VALUE => 'Status', ENTRYAGGREGATOR => 'OR');
50     $txns->Limit(FIELD => 'Type', VALUE => 'Create');
51
52     while (my $txn = $txns->Next) {
53         $queues{$txn->TicketObj->QueueObj->Name}{$txn->NewValue || 'new'}++;   
54         $status{$txn->NewValue || 'new'}++;
55         $total{$txn->TicketObj->QueueObj->Name}++;
56         $total++;
57     }
58 }
59
60
61 </%init>