integrate RTx::Statistics package, part of merging spiritone RT changes (#1661)
[freeside.git] / rt / html / Reports / Activity / ResolutionComments.html
1 <&|Elements/Wrapper, %ARGS, title => loc("Resolution Comments"), 
2     path => "Reports/Activity/ResolutionComments.html",
3     &>
4
5 <table style="width: 100%">
6 <tr>
7 <th>Queue</th><th>Ticket #</th><th>Created</th><th>Resolved</th><th>Time to resolve</th>
8 </tr>
9 <tr>
10 <th colspan="5">Resolution comments</th>
11 </tr>
12 % for my $item (@items) {
13 <tr class="titlerow">
14 <td><% $item->{queue} %></td>
15 <td><% $item->{id} %></td>
16 <td><% $item->{created} %></td>
17 <td><% $item->{resolved} %></td>
18 <td><% $item->{duration} %></td>
19 </tr>
20 <tr>
21 <td colspan="5"><% $item->{whiteboard} %></td>
22 </tr>
23 % }
24 </table>
25 </&>
26
27 <%args>
28 $query => 'id > 0'
29 $start => "2005/01/01"
30 $end   => "2006/01/01"
31 </%args>
32 <%init>
33
34 use Time::Duration;
35
36 my $summary_tickets = RT::Tickets->new( $session{'CurrentUser'} );
37 $summary_tickets->FromSQL(
38     $query . " AND (Status = 'resolved') AND ( Updated >= '$start' AND Updated <= '$end')" );
39
40 my @items;
41 while ( my $ticket = $summary_tickets->Next ) {
42     push @items, {
43         queue    => $ticket->QueueObj->Name,
44         id       => $ticket->id,
45         created  => $ticket->CreatedObj->AsString,
46         resolved => $ticket->ResolvedObj->AsString,
47         duration => Time::Duration::concise(
48             Time::Duration::duration(
49                 $ticket->ResolvedObj->Unix - $ticket->CreatedObj->Unix
50             )
51         ),
52         whiteboard => $ticket->FirstCustomFieldValue('Whiteboard')
53     };
54 }
55
56 @items = sort { $a->{queue} cmp $b->{queue} || $a->{id} <=> $b->{id} } @items;
57
58
59
60
61
62 </%init>