time worked reports for RT custom fields, #17230
[freeside.git] / httemplate / search / report_rt_ticket.html
index 79a601b..f0d7a42 100644 (file)
@@ -6,10 +6,20 @@
 
   <% include ( '/elements/tr-input-beginning_ending.html' ) %>
 
+  <& /elements/tr-td-label.html, label => 'Time category:' &>
+  <TD>
+  <& /elements/select-rt-customfield.html,
+      name        => 'cfname',
+      lookuptype  => 'RT::Transaction',
+      valuetype   => 'TimeValue',
+      empty_label => 'Worked',
+  &>
+  </TD></TR>
+
   <% include ( '/elements/tr-select-otaker.html' ) %>
 
   <TR>
-    <TD>Account</TD>
+    <TD ALIGN="right">Account:</TD>
     <TD>
       <SELECT NAME="svcnum">
         <OPTION VALUE="">(all)
@@ -48,4 +58,24 @@ if ( @pkgparts ) {
   });
 }
 
+# get a list of TimeValue-type custom fields
+RT::Init();
+my $CurrentUser = RT::CurrentUser->new();
+$CurrentUser->LoadByName($FS::CurrentUser::CurrentUser->username);
+die "RT not configured" unless $CurrentUser->id;
+my $CFs = RT::CustomFields->new($CurrentUser);
+
+$CFs->Limit(FIELD => 'LookupType',
+            OPERATOR => 'ENDSWITH',
+            VALUE => 'RT::Transaction');
+
+$CFs->Limit(FIELD => 'Type',
+            VALUE => 'TimeValue');
+
+my @time_fields = ('', 'Worked');
+while (my $CF = $CFs->Next) {
+  push @time_fields, $CF->Name, ($CF->Description || $CF->Name);
+}
+
+
 </%init>