From: jeff Date: Fri, 5 Oct 2007 19:53:16 +0000 (+0000) Subject: new ui for assigning support time X-Git-Tag: TRIXBOX_2_6~290 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=b22e443f60965aa415b3b190b3ec6875e034dafb new ui for assigning support time --- diff --git a/httemplate/misc/process/timeworked.html b/httemplate/misc/process/timeworked.html index 9f0399531..c589d768f 100644 --- a/httemplate/misc/process/timeworked.html +++ b/httemplate/misc/process/timeworked.html @@ -8,15 +8,16 @@ die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Time queue'); -my %multipliers = map { /^custnum(\d+)$/; ($cgi->param("custnum$1") => $cgi->param("multiplier$1")); } - grep /^custnum\d+$/, $cgi->param; -my $msum = 0; -foreach(values %multipliers) {$msum += $_}; - my @acct_rt_transaction; foreach my $transaction ( map { /^transactionid(\d+)$/; $1; } grep /^transactionid\d+$/, $cgi->param ) { + my $s = "multiplier${transaction}_"; + my %multipliers = map { /^$s(\d+)$/; $1 => $cgi->param("$s$1"); } + grep /^$s\d+$/, $cgi->param; + my $msum = 0; + foreach(values %multipliers) {$msum += $_}; + my $seconds = $cgi->param("seconds$transaction"); my %seconds = map { $_ => sprintf("%.0f", $seconds * $multipliers{$_} / $msum) } @@ -35,6 +36,8 @@ foreach my $transaction ( $seconds{$_} += $adjustment; last; } + } else { + die "unexpectedly cannot apportion time"; } foreach my $customer ( grep {$seconds{$_}} keys %seconds ) { diff --git a/httemplate/misc/timeworked.html b/httemplate/misc/timeworked.html index 2b288f233..f85a62835 100755 --- a/httemplate/misc/timeworked.html +++ b/httemplate/misc/timeworked.html @@ -7,29 +7,66 @@
-

-<% include("elements/customer-table.html", header => [ 'Multiplier' ], - fields => [ 'multiplier' ], - param => { %param }, - ) %> - -
- -
-
- -for transactions/tickets: - - -% foreach ( sort { $a <=> $b } keys %ticket ) { - - - - " > - +
<% $_ %><% $ticket{$_} %>
+ + + + + + + + + + + + + + + + + + + + + +% foreach ( keys %ticketmap ) { +% my (@customers) = @{$customers{$ticketmap{$_}}}; +% next unless @customers; +% my $multiplier = sprintf("%.2f", 1/@customers); +% my ($custnum, $name) = split(':', pop @customers, 2); + + + + + + + + + + + +% my $tr_id = $_; +% foreach ( @customers ) { +% ($custnum, $name) = split(':', $_, 2); + + + + + + + +% } % }
TransTicketTimeCustomerMultiplier
##Subjecthours#Name
<% $_ %><% $ticketmap{$_} %><% $ticket{$_} %><% sprintf("%0.2f", $cgi->param("seconds$_")/3600) %><% $custnum %><% $name %> + + " > + param("multiplier${_}_$custnum") : $multiplier %>" > +
<% $custnum %><% $name %> + param("multiplier${tr_id}_$custnum") : $multiplier %>" > +
+
+
@@ -39,7 +76,7 @@ for transactions/tickets: die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Time queue'); -my($svcnum, %ticket, %customers, %param); +my(%ticketmap, %ticket, %customers); my $title = 'Assign Time Worked'; RT::Init(); @@ -51,27 +88,21 @@ foreach my $id ( map { /^transactionid(\d+)$/; $1; } grep /^transactionid\d+$/, $cgi->param) { my $transaction = new RT::Transaction($CurrentUser); $transaction->Load($id); - my $ticket = new RT::Ticket($CurrentUser); - $ticket->Load($transaction->ObjectId); - $ticket{$id} = $ticket->Subject; - foreach my $customerURI ( - grep { $_->Resolver->{'fstable'} eq 'cust_main' } - grep { $_->Scheme eq 'freeside' } - map { $_->TargetURI } - @{ $ticket->_Links('Base')->ItemsArrayRef } - ) { - $customers{$customerURI->Resolver->AsString} = 1; + $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 } + ]; + } } -my $row = 0; -foreach ( keys %customers ) { - my ($number, $name) = split(':', $_, 2); - $param{"custnum$row"} = $number; - $param{"customer$row"} = $name; - $param{"multiplier$row"} = sprintf("%.2f", 1/scalar(keys(%customers))); - $row++; -} -