i think this should fix timeworked subjects, and link to the transactions as well
[freeside.git] / httemplate / misc / timeworked.html
1 <% include('/elements/header.html', $title, '' ) %>
2
3 % if ( $cgi->param('error') ) { 
4   <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT>
5   <BR><BR>
6 % } 
7
8 <FORM NAME="timeworked_form" ACTION="<% popurl(1) %>process/timeworked.html" METHOD=POST>
9
10 <TABLE CELLSPACING="2" CELLPADDING="2" RULES="groups" FRAME="hsides">
11
12 <THEAD>
13   <TR>
14     <TH>Trans</TH>
15     <TH COLSPAN="2">Ticket</TH>
16     <TH>Time</TH>
17     <TH COLSPAN="2">Customer</TH>
18     <TH>Multiplier</TH>
19   </TR>
20
21   <TR>
22     <TH>#</TH>
23     <TH>#</TH>
24     <TH>Subject</TH>
25     <TH>hours</TH>
26     <TH>#</TH>
27     <TH>Name</TH>
28     <TH></TH>
29   </TR>
30 </THEAD>
31
32 %  foreach my $tr_id ( keys %ticketmap ) {
33 %    my (@customers) = @{$customers{$ticketmap{$tr_id}}};
34 %    next unless @customers;
35 %    my $multiplier = sprintf("%.2f", 1/@customers);
36 %    my ($custnum, $name) = split(':', pop @customers, 2);
37 %    my $link = $p. 'rt/Ticket/Display.html?id='. $ticketmap{$tr_id}.
38 %                   '#txn-'. $tr_id;
39
40 <TBODY>
41   <TR>
42   <TD><a href="$link"><% $tr_id %></a></TD>
43   <TD><a href="$link"><% $ticketmap{$tr_id} %></a></TD>
44   <TD><a href="$link"><% $ticket{$ticketmap{$tr_id}} %></a></TD>
45   <TD><% sprintf("%0.2f", $cgi->param("seconds$tr_id")/3600) %></TD>
46   <TD ALIGN="right"><% $custnum %></TD>
47   <TD ALIGN="right"><% $name %></TD>
48   <TD>
49     <INPUT TYPE="hidden" NAME="transactionid<% $tr_id %>" VALUE="1" >
50     <INPUT TYPE="hidden" NAME="seconds<% $tr_id %>" VALUE="<% $cgi->param("seconds$tr_id") %>" >
51     <INPUT TYPE="text" NAME="multiplier<% $tr_id %>_<% $custnum %>" SIZE="5" VALUE="<% $cgi->param("multiplier${_}_$custnum") ? $cgi->param("multiplier${_}_$custnum") : $multiplier %>" >
52   </TR>
53
54 %    foreach ( @customers ) {
55 %      ($custnum, $name) = split(':', $_, 2);
56
57   <TR>
58   <TD ALIGN="right" COLSPAN="5" ><% $custnum %></TD>
59   <TD ALIGN="right"><% $name %></TD>
60   <TD>
61     <INPUT TYPE="text" NAME="multiplier<% $tr_id %>_<% $custnum %>" SIZE="5" VALUE="<% $cgi->param("multiplier${tr_id}_$custnum") ? $cgi->param("multiplier${tr_id}_$custnum") : $multiplier %>" >
62   </TR>
63 </TBODY>
64
65 %    }
66 %  }
67
68 </TABLE>
69 <BR>
70 <INPUT TYPE="submit" NAME="submit" VALUE="<% $title %>">
71 </FORM>
72 </BODY>
73 </HTML>
74
75 <%init>
76
77 die "access denied"
78   unless $FS::CurrentUser::CurrentUser->access_right('Time queue');
79
80 my(%ticketmap, %ticket, %customers); 
81 my $title = 'Assign Time Worked';
82
83 RT::Init();
84
85 my $CurrentUser = RT::CurrentUser->new();
86 $CurrentUser->LoadByName($FS::CurrentUser::CurrentUser->username);
87
88 foreach my $id ( map { /^transactionid(\d+)$/; $1; }
89                      grep /^transactionid\d+$/, $cgi->param) {
90   my $transaction = new RT::Transaction($CurrentUser); 
91   $transaction->Load($id);
92   $ticketmap{$id} = $transaction->ObjectId;
93   unless(exists($ticket{$ticketmap{$id}})) {
94     my $ticket = new RT::Ticket($CurrentUser);
95     $ticket->Load($ticketmap{$id});
96     $ticket{$ticketmap{$id}} = $ticket->Subject;
97     $customers{$ticketmap{$id}} =
98                             [ map  { $_->Resolver->AsString }
99                               grep { $_->Resolver->{'fstable'} eq 'cust_main' }
100                               grep { $_->Scheme eq 'freeside' } 
101                               map  { $_->TargetURI } 
102                                 @{ $ticket->_Links('Base')->ItemsArrayRef } 
103                             ];
104                             
105   }
106 }
107
108 </%init>
109