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