X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fprocess%2Ftimeworked.html;h=aaccf056e05aad684041ff79423e40df6825a9a0;hb=fe58901b811f0ab26e8f93a9563fb93bc98e4c19;hp=9f03995313668df1719eb1a81cc67dc8b0f6c097;hpb=91dbef4f8a693cba3aeb0d014611b944785be1d1;p=freeside.git diff --git a/httemplate/misc/process/timeworked.html b/httemplate/misc/process/timeworked.html index 9f0399531..aaccf056e 100644 --- a/httemplate/misc/process/timeworked.html +++ b/httemplate/misc/process/timeworked.html @@ -1,22 +1,28 @@ % if ($error) { <% $cgi->redirect(popurl(2). "timeworked.html?". $cgi->query_string) %> % } else { -<% $cgi->redirect(popurl(3). "search/timeworked.html") %> +<% $cgi->redirect(popurl(3). "search/timeworked.html?begin=$begin;end=$end;category=$category") %> % } <%init> 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($begin, $end) = FS::UI::Web::parse_beginning_ending($cgi); + +( my $category = $cgi->param('category') ) =~ /^\w*$/ + or die 'illegal category';#no need for nice error messages for XSS, just avoid 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 => scalar($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 +41,8 @@ foreach my $transaction ( $seconds{$_} += $adjustment; last; } + } else { + die "unexpectedly cannot apportion time"; } foreach my $customer ( grep {$seconds{$_}} keys %seconds ) { @@ -42,7 +50,7 @@ foreach my $transaction ( 'custnum' => $customer, 'transaction_id' => $transaction, 'seconds' => $seconds{$customer}, - 'support' => $seconds{$customer} * $msum, + 'support' => int( $seconds{$customer} * $msum ), }; }