optimize CDR rating after timed rate perf regression, RT#15739
[freeside.git] / httemplate / misc / timeworked.html
1 <% include('/elements/header.html', $title, '' ) %>
2
3 <% include('/elements/error.html') %>
4
5 <FORM NAME="timeworked_form" ACTION="<% popurl(1) %>process/timeworked.html" METHOD=POST>
6
7 <TABLE CELLSPACING="2" CELLPADDING="2" RULES="groups" FRAME="hsides">
8
9   <THEAD>
10     <TR>
11       <TH COLSPAN="2">Ticket</TH>
12       <TH>Hours</TH>
13       <TH COLSPAN="2">Customer</TH>
14       <TH>Multiplier</TH>
15     </TR>
16   </THEAD>
17
18   <TBODY>
19
20 %   foreach my $tr_id ( keys %ticketmap ) {
21 %     my (@customers) = @{$customers{$ticketmap{$tr_id}}};
22 %     next unless @customers;
23 %     my $default_multiplier = sprintf("%.2f", 1/@customers);
24 %     my ($custnum, $name) = split(':', pop @customers, 2);
25 %     my $link = $p. 'rt/Ticket/Display.html?id='. $ticketmap{$tr_id}.
26 %                    '#txn-'. $tr_id;
27 %     my $clink = $p. 'view/cust_main.cgi?'. $custnum;
28
29       <TR>
30         <TD><a href="<% $link %>"><% $ticketmap{$tr_id} %></a></TD>
31         <TD><a href="<% $link %>"><% $ticket{$ticketmap{$tr_id}} |h %></a></TD>
32
33 %       my $seconds = 0;
34 %       if ( $cgi->param("seconds$tr_id") =~ /^(\d+)$/ ) {
35 %         $seconds = $1;
36 %       }
37
38         <TD><% sprintf("%0.2f", $seconds/3600) %></TD>
39         <TD ALIGN="right"><a href="<% $clink %>"><% $custnum %></a></TD>
40         <TD ALIGN="right"><a href="<% $clink %>"><% $name %></a></TD>
41         <TD>
42           <INPUT TYPE="hidden" NAME="transactionid<%$tr_id%>" VALUE="1" >
43           <INPUT TYPE="hidden" NAME="seconds<%$tr_id%>" VALUE="<% $seconds %>" >
44
45 %         my $multiplier = $default_multiplier;
46 %         my $mult_paramname = "multiplier${tr_id}_$custnum";
47 %         if ( $cgi->param($mult_paramname) =~ /^\s*([\d\.]+)\s*$/ ) {
48 %           $multiplier = $1;
49 %         }
50
51           <INPUT TYPE="text" NAME="<% $mult_paramname %>" SIZE="5" VALUE="<% $multiplier %>" >
52         </TD>
53       </TR>
54
55 %     foreach ( @customers ) {
56 %       ($custnum, $name) = split(':', $_, 2);
57 %       $clink = $p. 'view/cust_main.cgi?'. $custnum;
58
59         <TR>
60           <TD ALIGN="right" COLSPAN="4" ><a href="<% $clink %>"><% $custnum %></a></TD>
61           <TD ALIGN="right"><a href="<% $clink %>"><% $name %></a></TD>
62           <TD>
63
64 %           $multiplier = $default_multiplier;
65 %           $mult_paramname = "multiplier${tr_id}_$custnum";
66 %           if ( $cgi->param($mult_paramname) =~ /^\s*([\d\.]+)\s*$/ ) {
67 %             $multiplier = $1;
68 %           }
69
70             <INPUT TYPE="text" NAME="<% $mult_paramname %>" SIZE="5" VALUE="<% $multiplier %>" >
71
72           </TD>
73
74         </TR>
75
76 %     }
77 %   }
78
79   </TBODY>
80
81 </TABLE>
82
83 <BR>
84
85 <INPUT TYPE="hidden" NAME="begin" VALUE="<% $cgi->param('begin') |h %>">
86 <INPUT TYPE="hidden" NAME="end"   VALUE="<% $cgi->param('end')   |h %>">
87
88 <INPUT TYPE="submit" NAME="submit" VALUE="<% $title %>">
89 </FORM>
90
91 <% include('/elements/footer.html') %>
92
93 <%init>
94
95 die "access denied"
96   unless $FS::CurrentUser::CurrentUser->access_right('Time queue');
97
98 my(%ticketmap, %ticket, %customers); 
99 my $title = 'Assign Time Worked';
100 tie %ticketmap, 'Tie::IxHash';
101
102 RT::Init();
103
104 my $CurrentUser = RT::CurrentUser->new();
105 $CurrentUser->LoadByName($FS::CurrentUser::CurrentUser->username);
106
107 foreach my $id ( map { /^transactionid(\d+)$/; $1; }
108                      grep /^transactionid\d+$/, $cgi->param) {
109   my $transaction = new RT::Transaction($CurrentUser); 
110   $transaction->Load($id);
111   $ticketmap{$id} = $transaction->ObjectId;
112   unless(exists($ticket{$ticketmap{$id}})) {
113     my $ticket = new RT::Ticket($CurrentUser);
114     $ticket->Load($ticketmap{$id});
115     $ticket{$ticketmap{$id}} = $ticket->Subject;
116     $customers{$ticketmap{$id}} =
117                             [ map  { $_->Resolver->AsString }
118                               grep { $_->Resolver->{'fstable'} eq 'cust_main' }
119                               grep { $_->Scheme eq 'freeside' } 
120                               map  { $_->TargetURI } 
121                                 @{ $ticket->_Links('Base')->ItemsArrayRef } 
122                             ];
123                             
124   }
125 }
126
127 </%init>
128