diff options
Diffstat (limited to 'httemplate/misc/timeworked.html')
-rwxr-xr-x | httemplate/misc/timeworked.html | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/httemplate/misc/timeworked.html b/httemplate/misc/timeworked.html new file mode 100755 index 0000000..46063e8 --- /dev/null +++ b/httemplate/misc/timeworked.html @@ -0,0 +1,138 @@ +<% include('/elements/header.html', $title, '' ) %> + +<% include('/elements/error.html') %> + +<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> + + <TBODY> + +% foreach my $tr_id ( keys %ticketmap ) { +% my (@customers) = @{$customers{$ticketmap{$tr_id}}}; +% next unless @customers; +% my $default_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; + + <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}} |h %></a></TD> + +% my $seconds = 0; +% if ( $cgi->param("seconds$tr_id") =~ /^(\d+)$/ ) { +% $seconds = $1; +% } + + <TD><% sprintf("%0.2f", $seconds/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="<% $seconds %>" > + +% my $multiplier = $default_multiplier; +% my $mult_paramname = "multiplier${tr_id}_$custnum"; +% if ( $cgi->param($mult_paramname) =~ /^\s*([\d\.]+)\s*$/ ) { +% $multiplier = $1; +% } + + <INPUT TYPE="text" NAME="<% $mult_paramname %>" SIZE="5" VALUE="<% $multiplier %>" > + </TD> + </TR> + +% foreach ( @customers ) { +% ($custnum, $name) = split(':', $_, 2); + + <TR> + <TD ALIGN="right" COLSPAN="5" ><% $custnum %></TD> + <TD ALIGN="right"><% $name %></TD> + <TD> + +% $multiplier = $default_multiplier; +% $mult_paramname = "multiplier${tr_id}_$custnum"; +% if ( $cgi->param($mult_paramname) =~ /^\s*([\d\.]+)\s*$/ ) { +% $multiplier = $1; +% } + + <INPUT TYPE="text" NAME="<% $mult_paramname %>" SIZE="5" VALUE="<% $multiplier %>" > + + </TD> + + </TR> + +% } +% } + + </TBODY> + +</TABLE> + +<BR> + +<INPUT TYPE="hidden" NAME="begin" VALUE="<% $cgi->param('begin') |h %>"> +<INPUT TYPE="hidden" NAME="end" VALUE="<% $cgi->param('end') |h %>"> + +<INPUT TYPE="submit" NAME="submit" VALUE="<% $title %>"> +</FORM> + +<% include('/elements/footer.html') %> + +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Time queue'); + +my(%ticketmap, %ticket, %customers); +my $title = 'Assign Time Worked'; +tie %ticketmap, 'Tie::IxHash'; + +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> + |