2 <% $cgi->redirect(popurl(2). "timeworked.html?". $cgi->query_string) %>
4 <% $cgi->redirect(popurl(3). "search/timeworked.html") %>
9 unless $FS::CurrentUser::CurrentUser->access_right('Time queue');
11 my %multipliers = map { /^custnum(\d+)$/; ($cgi->param("custnum$1") => $cgi->param("multiplier$1")); }
12 grep /^custnum\d+$/, $cgi->param;
14 foreach(values %multipliers) {$msum += $_};
16 my @acct_rt_transaction;
17 foreach my $transaction (
18 map { /^transactionid(\d+)$/; $1; } grep /^transactionid\d+$/, $cgi->param
20 my $seconds = $cgi->param("seconds$transaction");
22 map { $_ => sprintf("%.0f", $seconds * $multipliers{$_} / $msum) }
26 foreach (values %seconds) {
31 #fudge in some time if we're close
32 if (abs($seconds-$sum) <= $count) {
33 my $adjustment = $seconds-$sum;
34 foreach (keys %seconds) { # explicitly choose one?
35 $seconds{$_} += $adjustment;
40 foreach my $customer ( grep {$seconds{$_}} keys %seconds ) {
41 push @acct_rt_transaction, new FS::acct_rt_transaction {
42 'custnum' => $customer,
43 'transaction_id' => $transaction,
44 'seconds' => $seconds{$customer},
45 'support' => $seconds{$customer} * $msum,
51 my $error = FS::acct_rt_transaction->batch_insert(@acct_rt_transaction);
52 $cgi->param('error', $error) if $error;