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 my @svc_acct_rt_transaction;
15 foreach my $transaction (
16 map { /^transactionid(\d+)$/; $1; } grep /^transactionid\d+$/, $cgi->param
18 my $seconds = $cgi->param("seconds$transaction");
19 my %seconds = map { $_ => sprintf("%.0f", $seconds * $multipliers{$_}) }
23 foreach (values %seconds) {
28 #fudge in some time if we're close
29 if (abs($seconds-$sum) <= $count) {
30 my $adjustment = $seconds-$sum;
31 foreach (keys %seconds) { # explicitly choose one?
32 $seconds{$_} += $adjustment;
37 foreach my $customer ( grep {$seconds{$_}} keys %seconds ) {
38 push @svc_acct_rt_transaction, new FS::svc_acct_rt_transaction {
39 'custnum' => $customer,
40 'transaction_id' => $transaction,
41 'seconds' => $seconds{$customer},
47 my $error = FS::svc_acct_rt_transaction->batch_insert(@svc_acct_rt_transaction);
48 $cgi->param('error', $error) if $error;