<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rt-wiki.bestpractical.com/index.php?action=history&amp;feed=atom&amp;title=RT3StatisticsPackageTimeWorked</id>
	<title>RT3StatisticsPackageTimeWorked - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rt-wiki.bestpractical.com/index.php?action=history&amp;feed=atom&amp;title=RT3StatisticsPackageTimeWorked"/>
	<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=RT3StatisticsPackageTimeWorked&amp;action=history"/>
	<updated>2026-08-22T16:14:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=RT3StatisticsPackageTimeWorked&amp;diff=2903&amp;oldid=prev</id>
		<title>Admin: 2 revisions imported</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=RT3StatisticsPackageTimeWorked&amp;diff=2903&amp;oldid=prev"/>
		<updated>2016-04-06T20:23:34Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This version works well for me, but hasn&amp;#039;t been tested very thoroughly. You&amp;#039;ll need to adjust the value of &amp;lt;code&amp;gt; $Queue&amp;lt;/code&amp;gt; and the id of the custom field.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;% # {{{ comment&lt;br /&gt;
 % #&lt;br /&gt;
 % # Created: 12/05/2004 13:55:01 EST by Andy Harrison&lt;br /&gt;
 % #         {&lt;br /&gt;
 % #             TLD      =&amp;amp;gt; &amp;#039;com&amp;#039;,&lt;br /&gt;
 % #             Username =&amp;amp;gt; &amp;#039;aharrison&amp;#039;,&lt;br /&gt;
 % #             Domain   =&amp;amp;gt; &amp;#039;gmail&amp;#039;&lt;br /&gt;
 % #         }&lt;br /&gt;
 % #&lt;br /&gt;
 % # ------------------&lt;br /&gt;
 % # Time Worked Report&lt;br /&gt;
 % # ------------------&lt;br /&gt;
 % #&lt;br /&gt;
 % # Plugin for the RT Statistics Package&lt;br /&gt;
 % #&lt;br /&gt;
 % # $Id: RT3StatisticsPackageTimeWorked,v 1.7 2006/10/26 12:21:19 www-data Exp $&lt;br /&gt;
 % #&lt;br /&gt;
 % # }}}&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;&amp;amp;amp; /Elements/Header, Title =&amp;amp;gt; loc(&amp;#039;RT Statistics: sysops-tasks queue, Time Worked Report&amp;#039;) &amp;amp;amp;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;&amp;amp;amp; /Statistics/Elements/Tabs,  Title =&amp;amp;gt; loc(&amp;#039;RT Statistics: Time Worked Report, sysops-tasks&amp;#039;) &amp;amp;amp;&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;form method=&amp;quot;POST&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;p&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;&amp;amp;amp;|/l&amp;amp;amp;&amp;amp;gt;Days to see&amp;amp;lt;/&amp;amp;amp;&amp;amp;gt;:&lt;br /&gt;
 &amp;amp;lt;INPUT TYPE=text MAXLENGTH=2 SIZE=3 VALUE=&amp;quot;&amp;amp;lt;% 1+$max %&amp;amp;gt;&amp;quot; NAME=&amp;quot;max&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;&amp;amp;amp;|/l&amp;amp;amp;&amp;amp;gt;See weekends&amp;amp;lt;/&amp;amp;amp;&amp;amp;gt;:&lt;br /&gt;
 &amp;amp;lt;INPUT TYPE=&amp;quot;checkbox&amp;quot; &amp;amp;lt;% $weekends &amp;amp;amp;&amp;amp;amp; &amp;#039;CHECKED&amp;#039; %&amp;amp;gt; name=&amp;quot;weekends&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;INPUT TYPE=&amp;quot;submit&amp;quot; VALUE=&amp;quot;&amp;amp;lt;&amp;amp;amp;|/l&amp;amp;amp;&amp;amp;gt;Go!&amp;amp;lt;/&amp;amp;amp;&amp;amp;gt;&amp;quot;&amp;amp;lt;/INPUT&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 % # --------&lt;br /&gt;
 % # Re-add this if you want to be able to pick queues again&lt;br /&gt;
 % #&lt;br /&gt;
 % # &amp;amp;lt;&amp;amp;amp;|/l&amp;amp;amp;&amp;amp;gt;See Queue&amp;amp;lt;/&amp;amp;amp;&amp;amp;gt;:&amp;amp;lt;BR&amp;amp;gt;&lt;br /&gt;
 % # &amp;amp;lt;&amp;amp;amp; /Elements/SelectQueue, Name=&amp;amp;gt;&amp;quot;queue&amp;quot;, ShowNullOption=&amp;amp;gt;0 &amp;amp;amp;&amp;amp;gt;&lt;br /&gt;
 % # --------&lt;br /&gt;
 %&lt;br /&gt;
 % #&lt;br /&gt;
 % # Now start iterating through our dates and&lt;br /&gt;
 % # building our our results and summary hashes.&lt;br /&gt;
 % #&lt;br /&gt;
 %&lt;br /&gt;
 % for my $d (0..$#dates) {&lt;br /&gt;
 %&lt;br /&gt;
 %     my $x = 1;&lt;br /&gt;
 %       for my $CurrentTicketType ( @CustomTicketTypes ) {&lt;br /&gt;
 %           #&lt;br /&gt;
 %           # Create a fresh Tickets object&lt;br /&gt;
 %           #&lt;br /&gt;
 %           my $TicketsObj = new RT::Tickets( $RT::SystemUser );&lt;br /&gt;
 %           #&lt;br /&gt;
 %           # (just wanted a CurrentDayStart for my own readability )&lt;br /&gt;
 %           #&lt;br /&gt;
 %           my $CurrentDayStart = new RT::Date( $RT::SystemUser );&lt;br /&gt;
 %           $CurrentDayStart-&amp;amp;gt;Set(&lt;br /&gt;
 %                   Format =&amp;amp;gt; &amp;#039;unix&amp;#039;,&lt;br /&gt;
 %                   Value  =&amp;amp;gt; $dates[ $d ]-&amp;amp;gt;Unix&lt;br /&gt;
 %           );&lt;br /&gt;
 %           $CurrentDayStart-&amp;amp;gt;SubtractDay;&lt;br /&gt;
 %&lt;br /&gt;
 %           #&lt;br /&gt;
 %           # In the current date range, we want to just&lt;br /&gt;
 %           # make a list of tickets that have been updated&lt;br /&gt;
 %           # in the current time period for this pass.&lt;br /&gt;
 %           #&lt;br /&gt;
 %           $TicketsObj-&amp;amp;gt;LimitDate(&lt;br /&gt;
 %                   FIELD    =&amp;amp;gt; &amp;#039;LastUpdated&amp;#039;,&lt;br /&gt;
 %                   VALUE    =&amp;amp;gt; $dates[$d]-&amp;amp;gt;ISO,&lt;br /&gt;
 %                   OPERATOR =&amp;amp;gt; &amp;quot;&amp;amp;lt;=&amp;quot;&lt;br /&gt;
 %           );&lt;br /&gt;
 %           if ( $dates[$d+1] ) {&lt;br /&gt;
 %               $TicketsObj-&amp;amp;gt;LimitDate(&lt;br /&gt;
 %                       FIELD    =&amp;amp;gt; &amp;#039;LastUpdated&amp;#039;,&lt;br /&gt;
 %                       VALUE    =&amp;amp;gt; $CurrentDayStart-&amp;amp;gt;Unix,&lt;br /&gt;
 %                       OPERATOR =&amp;amp;gt; &amp;quot;&amp;amp;gt;=&amp;quot;&lt;br /&gt;
 %               );&lt;br /&gt;
 %           }&lt;br /&gt;
 %&lt;br /&gt;
 %           #&lt;br /&gt;
 %           # You could do this for other queues if you wanted&lt;br /&gt;
 %           #&lt;br /&gt;
 %           $TicketsObj-&amp;amp;gt;LimitQueue( VALUE =&amp;amp;gt; $Queue );&lt;br /&gt;
 %&lt;br /&gt;
 %           #&lt;br /&gt;
 %           # Only show transactions where there was some work done&lt;br /&gt;
 %           #&lt;br /&gt;
 %           $TicketsObj-&amp;amp;gt;LimitTimeWorked( VALUE =&amp;amp;gt; 1, OPERATOR =&amp;amp;gt; &amp;quot;&amp;amp;gt;&amp;quot; );&lt;br /&gt;
 %&lt;br /&gt;
 %           #&lt;br /&gt;
 %           # Limiting the search to the custom field that we use&lt;br /&gt;
 %           # for the type work being done in the ticket&lt;br /&gt;
 %           #&lt;br /&gt;
 %           $TicketsObj-&amp;amp;gt;LimitCustomField(&lt;br /&gt;
 %                   CUSTOMFIELD =&amp;amp;gt; 129,&lt;br /&gt;
 %                   VALUE       =&amp;amp;gt; &amp;quot;$CurrentTicketType&amp;quot;,&lt;br /&gt;
 %                   OPERATOR    =&amp;amp;gt; &amp;quot;=&amp;quot;&lt;br /&gt;
 %           );&lt;br /&gt;
 %&lt;br /&gt;
 %           #&lt;br /&gt;
 %           #&lt;br /&gt;
 %           # $TicketsObj will now contain tickets with&lt;br /&gt;
 %           # a transaction for the current date&lt;br /&gt;
 %           #&lt;br /&gt;
 &lt;br /&gt;
 %           #&lt;br /&gt;
 %           # For every ticket in the list, we want to cycle through its&lt;br /&gt;
 %           # transactions looking for what we want.&lt;br /&gt;
 %           #&lt;br /&gt;
 %           while ( my $CurrentTicketObj = $TicketsObj-&amp;amp;gt;Next ) {&lt;br /&gt;
 %               my $CurrentTransactionsObj = $CurrentTicketObj-&amp;amp;gt;Transactions;&lt;br /&gt;
 %               my $LastTicket;&lt;br /&gt;
 %&lt;br /&gt;
 %               while ( my $CurrentTicketTransactionObj =&lt;br /&gt;
 %                           $CurrentTransactionsObj-&amp;amp;gt;Next ) {&lt;br /&gt;
 %                   my $CurTransDateObj = new RT::Date( $RT::SystemUser );&lt;br /&gt;
 %                   $CurTransDateObj-&amp;amp;gt;Set(&lt;br /&gt;
 %                           Format =&amp;amp;gt; &amp;#039;ISO&amp;#039;,&lt;br /&gt;
 %                           Value  =&amp;amp;gt; $CurrentTicketTransactionObj-&amp;amp;gt;Created&lt;br /&gt;
 %                   );&lt;br /&gt;
 %&lt;br /&gt;
 %                   if (&lt;br /&gt;
 %                           (    $CurrentTicketTransactionObj-&amp;amp;gt;Type&lt;br /&gt;
 %                                    eq &amp;#039;Comment&amp;#039;&lt;br /&gt;
 %                             || $CurrentTicketTransactionObj-&amp;amp;gt;Type&lt;br /&gt;
 %                                    eq &amp;#039;Correspond&amp;#039;&lt;br /&gt;
 %                             || $CurrentTicketTransactionObj-&amp;amp;gt;Type&lt;br /&gt;
 %                                    eq &amp;#039;Create&amp;#039;&lt;br /&gt;
 %                           )&lt;br /&gt;
 %                       &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
 %                           (       $CurTransDateObj-&amp;amp;gt;Unix&lt;br /&gt;
 %                                       &amp;amp;lt;= $dates[ $d ]-&amp;amp;gt;Unix&lt;br /&gt;
 %                               &amp;amp;amp;&amp;amp;amp;  $CurTransDateObj-&amp;amp;gt;Unix&lt;br /&gt;
 %                                       &amp;amp;gt;= $CurrentDayStart-&amp;amp;gt;Unix&lt;br /&gt;
 %                           )&lt;br /&gt;
 %                       &amp;amp;amp;&amp;amp;amp;  $CurrentTicketTransactionObj-&amp;amp;gt;TimeTaken&lt;br /&gt;
 %                   ) {&lt;br /&gt;
 %&lt;br /&gt;
 %                       $TicketResults{ $CurrentDayStart-&amp;amp;gt;ISO }{ $CurrentTicketType } =&lt;br /&gt;
 %                           $SubTableObj-&amp;amp;gt;render(&lt;br /&gt;
 %                           {&lt;br /&gt;
 %                               &amp;#039;TicketID&amp;#039;          =&amp;amp;gt;&lt;br /&gt;
 %                                   $CurrentTicketTransactionObj-&amp;amp;gt;TicketObj-&amp;amp;gt;id,&lt;br /&gt;
 %                               &amp;#039;TicketSubject&amp;#039;     =&amp;amp;gt;&lt;br /&gt;
 %                                   $CurrentTicketTransactionObj-&amp;amp;gt;TicketObj-&amp;amp;gt;Subject,&lt;br /&gt;
 %                               &amp;#039;TicketRequestor&amp;#039;   =&amp;amp;gt;&lt;br /&gt;
 %                                   $CurrentTicketTransactionObj-&amp;amp;gt;TicketObj-&amp;amp;gt;RequestorAddresses,&lt;br /&gt;
 %                               &amp;#039;TransactionID&amp;#039;     =&amp;amp;gt;&lt;br /&gt;
 %                                   $CurrentTicketTransactionObj-&amp;amp;gt;id,&lt;br /&gt;
 %                               &amp;#039;Employee&amp;#039;          =&amp;amp;gt;&lt;br /&gt;
 %                                   $CurrentTicketTransactionObj-&amp;amp;gt;CreatorObj-&amp;amp;gt;Name,&lt;br /&gt;
 %                               &amp;#039;Worked&amp;#039;            =&amp;amp;gt;&lt;br /&gt;
 %                                   $CurrentTicketTransactionObj-&amp;amp;gt;TimeTaken,&lt;br /&gt;
 %                               &amp;#039;EntryDate&amp;#039;         =&amp;amp;gt;&lt;br /&gt;
 %                                   $CurrentTicketTransactionObj-&amp;amp;gt;Created,&lt;br /&gt;
 %                           });&lt;br /&gt;
 %&lt;br /&gt;
 %                       $EmployeeSummary{ $CurrentTicketType }{ $CurrentTicketTransactionObj-&amp;amp;gt;CreatorObj-&amp;amp;gt;Name } +=&lt;br /&gt;
 %                           $CurrentTicketTransactionObj-&amp;amp;gt;TimeTaken;&lt;br /&gt;
 %&lt;br /&gt;
 %                       $EmployeeSummary{ &amp;#039;total/person&amp;#039; }{ $CurrentTicketTransactionObj-&amp;amp;gt;CreatorObj-&amp;amp;gt;Name } +=&lt;br /&gt;
 %                           $CurrentTicketTransactionObj-&amp;amp;gt;TimeTaken;&lt;br /&gt;
 %&lt;br /&gt;
 %                       $EmployeeSummary{ $CurrentTicketType }{ &amp;#039;total/type&amp;#039; } +=&lt;br /&gt;
 %                           $CurrentTicketTransactionObj-&amp;amp;gt;TimeTaken;&lt;br /&gt;
 %                       $EmployeeSummary{ &amp;#039;total/person&amp;#039; }{ &amp;#039;total/type&amp;#039; } +=&lt;br /&gt;
 %                           $CurrentTicketTransactionObj-&amp;amp;gt;TimeTaken;&lt;br /&gt;
 %&lt;br /&gt;
 %&lt;br /&gt;
 %#                       $EmployeeSummary{ $CurrentTicketType }{ $CurrentTicketTransactionObj-&amp;amp;gt;CreatorObj-&amp;amp;gt;Name } +=&lt;br /&gt;
 %#                           $TicketResults{ $CurrentDayStart-&amp;amp;gt;ISO }{ $CurrentTicketType }{ Worked };&lt;br /&gt;
 %#&lt;br /&gt;
 %#                       $EmployeeSummary{ &amp;#039;total/person&amp;#039; }{ $CurrentTicketTransactionObj-&amp;amp;gt;CreatorObj-&amp;amp;gt;Name } +=&lt;br /&gt;
 %#                           $TicketResults{ $CurrentDayStart-&amp;amp;gt;ISO }{ $CurrentTicketType }{ Worked };&lt;br /&gt;
 %#&lt;br /&gt;
 %#                       $EmployeeSummary{ $CurrentTicketType }{ &amp;#039;total/type&amp;#039; } +=&lt;br /&gt;
 %#                           $TicketResults{ $CurrentDayStart-&amp;amp;gt;ISO }{ $CurrentTicketType }{ Worked };&lt;br /&gt;
 %#                       $EmployeeSummary{ &amp;#039;total/person&amp;#039; }{ &amp;#039;total/type&amp;#039; } +=&lt;br /&gt;
 %#                           $TicketResults{ $CurrentDayStart-&amp;amp;gt;ISO }{ $CurrentTicketType }{ Worked };&lt;br /&gt;
 %                   }&lt;br /&gt;
 %               }&lt;br /&gt;
 %           }&lt;br /&gt;
 %&lt;br /&gt;
 % #         $data[$x++][$d] = $TicketsObj-&amp;amp;gt;Count;&lt;br /&gt;
 %     }&lt;br /&gt;
 % }&lt;br /&gt;
 &amp;amp;lt;p&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;hr&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
 % #&lt;br /&gt;
 % # Dump the summary of gathered TimeWorked&lt;br /&gt;
 % #&lt;br /&gt;
 %&lt;br /&gt;
 % #&lt;br /&gt;
 % # Make the totals appear in bold&lt;br /&gt;
 % #&lt;br /&gt;
 % foreach my $TotalToStyle ( keys %{ $EmployeeSummary{ &amp;#039;total/person&amp;#039; } } ) {&lt;br /&gt;
 %       $EmployeeSummary{ &amp;#039;total/person&amp;#039; }{ $TotalToStyle } =&lt;br /&gt;
 %           &amp;quot;&amp;amp;lt;b&amp;amp;gt;&amp;quot;&lt;br /&gt;
 %           . $EmployeeSummary{ &amp;#039;total/person&amp;#039; }{ $TotalToStyle }&lt;br /&gt;
 %           . &amp;quot;&amp;amp;lt;/b&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 % }&lt;br /&gt;
 % foreach my $TotalToStyle ( keys %EmployeeSummary ) {&lt;br /&gt;
 %       $EmployeeSummary{ $TotalToStyle }{ &amp;#039;total/type&amp;#039; } =&lt;br /&gt;
 %           &amp;quot;&amp;amp;lt;b&amp;amp;gt;&amp;quot;&lt;br /&gt;
 %           . $EmployeeSummary{ $TotalToStyle }{ &amp;#039;total/type&amp;#039; }&lt;br /&gt;
 %           . &amp;quot;&amp;amp;lt;/b&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 % }&lt;br /&gt;
 %&lt;br /&gt;
 % print $TableObj-&amp;amp;gt;render( \%TicketResults );&lt;br /&gt;
 % print $TableObj-&amp;amp;gt;render( \%EmployeeSummary );&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;p&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;hr&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/form&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;BR&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 %#&lt;br /&gt;
 %# No graphing at the moment&lt;br /&gt;
 %#&lt;br /&gt;
 %## &amp;amp;lt;%perl&amp;amp;gt;&lt;br /&gt;
 %## my $url= &amp;#039;Elements/Chart?x_labels=&amp;#039;;&lt;br /&gt;
 %## for (0..$max) {&lt;br /&gt;
 %##     $url .= $data[0][$_] . &amp;quot;,&amp;quot;;&lt;br /&gt;
 %## }&lt;br /&gt;
 %## chop $url;&lt;br /&gt;
 %## $url .= &amp;quot;&amp;amp;amp;&amp;quot;;&lt;br /&gt;
 %## shift @data;&lt;br /&gt;
 %## for (0..$#data) {&lt;br /&gt;
 %##     $url .= &amp;quot;data&amp;quot;.(1+$_).&amp;quot;=&amp;quot;.(join &amp;quot;,&amp;quot;, @{$data[$_]}).&amp;quot;&amp;amp;amp;&amp;quot;;&lt;br /&gt;
 %## }&lt;br /&gt;
 %## chop $url;&lt;br /&gt;
 %## &amp;amp;lt;/%perl&amp;amp;gt;&lt;br /&gt;
 %## &amp;amp;lt;IMG SRC=&amp;quot;&amp;amp;lt;% $url %&amp;amp;gt;&amp;quot; type=&amp;quot;image/png&amp;quot;&amp;amp;gt;&lt;br /&gt;
 %## &amp;amp;lt;BR&amp;amp;gt;&lt;br /&gt;
 %## &amp;amp;lt;font color=&amp;quot;red&amp;quot;&amp;amp;gt; &amp;amp;lt;&amp;amp;amp;|/l&amp;amp;amp;&amp;amp;gt;Resolved&amp;amp;lt;/&amp;amp;amp;&amp;amp;gt;&amp;amp;lt;/FONT&amp;amp;gt; &amp;amp;lt;font color=&amp;quot;green&amp;quot;&amp;amp;gt;&amp;amp;lt;&amp;amp;amp;|/l&amp;amp;amp;&amp;amp;gt;Created&amp;amp;lt;/&amp;amp;amp;&amp;amp;gt;&amp;amp;lt;/font&amp;amp;gt;&lt;br /&gt;
 %## &amp;amp;lt;font color=&amp;quot;blue&amp;quot;&amp;amp;gt; &amp;amp;lt;&amp;amp;amp;|/l&amp;amp;amp;&amp;amp;gt;Deleted&amp;amp;lt;/&amp;amp;amp;&amp;amp;gt; &amp;amp;lt;/font&amp;amp;gt; &amp;amp;lt;BR&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;%ARGS&amp;amp;gt;&lt;br /&gt;
 $max =&amp;amp;gt; undef&lt;br /&gt;
 $Queue =&amp;amp;gt; 45&lt;br /&gt;
 $weekends =&amp;amp;gt; 1&lt;br /&gt;
 &amp;amp;lt;/%ARGS&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;%INIT&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 unless ( eval { require HTML::QuickTable } ) {&lt;br /&gt;
     die &amp;quot;Unable to load HTML::QuickTable module: $@\n&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 my $TableObj = HTML::QuickTable-&amp;amp;gt;new(&lt;br /&gt;
                                       labels =&amp;amp;gt; 1,&lt;br /&gt;
                                       th     =&amp;amp;gt; { class  =&amp;amp;gt; &amp;#039;ticketheader&amp;#039; },&lt;br /&gt;
                                       table  =&amp;amp;gt; { border =&amp;amp;gt; 0 },&lt;br /&gt;
                                       td     =&amp;amp;gt; { style  =&amp;amp;gt; &amp;#039;border: solid black 1px&amp;#039; },&lt;br /&gt;
                                       null   =&amp;amp;gt; &amp;#039; &amp;#039;,&lt;br /&gt;
                                     );&lt;br /&gt;
 &lt;br /&gt;
 my $SubTableObj = HTML::QuickTable-&amp;amp;gt;new(&lt;br /&gt;
                                       labels =&amp;amp;gt; 0,&lt;br /&gt;
                                       table  =&amp;amp;gt; { border =&amp;amp;gt; 0 },&lt;br /&gt;
                                       null   =&amp;amp;gt; &amp;#039; &amp;#039;,&lt;br /&gt;
                                       );&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 my @days = qw(Sun Mon Tue Wed Thu Fri Sat);&lt;br /&gt;
 my $n = 0;&lt;br /&gt;
 my @data = ([]);&lt;br /&gt;
 my @dates;&lt;br /&gt;
 my @msgs;&lt;br /&gt;
 my @CustomTicketTypes;&lt;br /&gt;
 my %EmployeeSummary;&lt;br /&gt;
 my %TicketResults;&lt;br /&gt;
 $max--;&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Load up the specified queue&lt;br /&gt;
 #&lt;br /&gt;
 # my $QueueObj = new RT::Queue($session{&amp;#039;CurrentUser&amp;#039;});&lt;br /&gt;
 my $QueueObj = new RT::Queue( $RT::SystemUser );&lt;br /&gt;
 $QueueObj-&amp;amp;gt;Load( $Queue ) || Abort(loc(&amp;quot;Queue could not be loaded.&amp;quot;));&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # We use a custom field to designate the particular&lt;br /&gt;
 # type of work being done, Maintenance, Security,&lt;br /&gt;
 # Documentation, etc.&lt;br /&gt;
 #&lt;br /&gt;
 # All you need is push strings to the @CustomTicketTypes&lt;br /&gt;
 # list and it will split up the report into those&lt;br /&gt;
 # categories&lt;br /&gt;
 #&lt;br /&gt;
 my $CustomFieldsObj = $QueueObj-&amp;amp;gt;CustomFields;&lt;br /&gt;
 while ( my $CustomFieldObj = $CustomFieldsObj-&amp;amp;gt;Next ) {&lt;br /&gt;
     next unless $CustomFieldObj-&amp;amp;gt;Name eq &amp;quot;Type&amp;quot;;&lt;br /&gt;
     my $CustomFieldValuesObj = $CustomFieldObj-&amp;amp;gt;Values();&lt;br /&gt;
     while ( my $CustomFieldValueObj = $CustomFieldValuesObj-&amp;amp;gt;Next ) {&lt;br /&gt;
         push @CustomTicketTypes, $CustomFieldValueObj-&amp;amp;gt;Name;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Create the list of dates.&lt;br /&gt;
 #&lt;br /&gt;
 until ($#dates == $max) {&lt;br /&gt;
 #   my $date = new RT::Date($session{CurrentUser});&lt;br /&gt;
     my $date = new RT::Date( $RT::SystemUser );&lt;br /&gt;
     $date-&amp;amp;gt;Set(Value=&amp;amp;gt;time - $n, Format =&amp;amp;gt; &amp;#039;unix&amp;#039;);&lt;br /&gt;
     $date-&amp;amp;gt;SetToMidnight;&lt;br /&gt;
     my $when = $days[(localtime($date-&amp;amp;gt;SetToMidnight))[6]];&lt;br /&gt;
     $n+= 60*60*24;&lt;br /&gt;
     next if !$weekends and ( $when eq &amp;quot;Sat&amp;quot; or $when eq &amp;quot;Sun&amp;quot; );&lt;br /&gt;
     unshift @dates, $date;&lt;br /&gt;
     unshift @{ $data[0] },&lt;br /&gt;
         $days[(localtime($date-&amp;amp;gt;Unix))[6]].&amp;quot;%20&amp;quot;. (localtime($date-&amp;amp;gt;Unix))[3];&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &amp;amp;lt;/%INIT&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 * This seems great but where are you supposed to put this file?&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[MichaelErana]], August 5, 2005&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;* No idea, I&amp;#039;m trying to figure that out too.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- [[RoyMiller]], October 26, 2005&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;* File goes into /&amp;amp;lt;rt3dir&amp;amp;gt;/share/html/RTx/Statistics/TimeWorked/index.html&lt;br /&gt;
 * Will need to add a link to the base index.html&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Spiker, June 10, 2009&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>