From 50be46e4336e9760a19ba227663a540b5c78c854 Mon Sep 17 00:00:00 2001 From: Colin Campbell Date: Tue, 23 Mar 2010 09:46:01 +0000 Subject: [PATCH 2/2] Bug 4331 Remove cruft from acqui-home script Content-Type: text/plain; charset="utf-8" Remove unnecessary db calls and processing from acqui-home.pl Do not duplicate processing of fields Declare variables closer to use Remove unnecessary holding vars Replace some anonymous var names by something more meaningful Do not generate a toggle variable use Template's LOOP vars --- acqui/acqui-home.pl | 164 +++++++------------- .../prog/en/modules/acqui/acqui-home.tmpl | 6 +- 2 files changed, 59 insertions(+), 111 deletions(-) diff --git a/acqui/acqui-home.pl b/acqui/acqui-home.pl index 331582a..45a04bf 100755 --- a/acqui/acqui-home.pl +++ b/acqui/acqui-home.pl @@ -16,25 +16,13 @@ # with Koha; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - =head1 NAME acqui-home.pl =head1 DESCRIPTION -this script is the main page for acqui/ - -=head1 CGI PARAMETERS - -=over 4 - -=item $status -C<$status> is the status a suggestion could has. Default value is 'ASKED'. -thus, it can be REJECTED, ACCEPTED, ORDERED, ASKED, AVAIBLE - -=back +this script is the main page for acqui =cut @@ -45,51 +33,32 @@ use Number::Format; use CGI; use C4::Auth; use C4::Output; -use C4::Suggestions; use C4::Acquisition; use C4::Budgets; use C4::Members; use C4::Branch; use C4::Debug; -my $query = new CGI; +my $query = CGI->new; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { - template_name => "acqui/acqui-home.tmpl", + { template_name => 'acqui/acqui-home.tmpl', query => $query, - type => "intranet", + type => 'intranet', authnotrequired => 0, - flagsrequired => { acquisition => "*" }, + flagsrequired => { acquisition => '*' }, debug => 1, } ); -# budget -my $borrower= GetMember('borrowernumber' => $loggedinuser); -my ( $flags, $homebranch )= ($borrower->{'flags'},$borrower->{'branchcode'}); - -my @results = GetBudgets($homebranch); -my $count = scalar @results; -my $branchname = GetBranchName($homebranch); - -my $classlist = ''; -my $total = 0; -my $totspent = 0; -my $totordered = 0; -my $totcomtd = 0; -my $totavail = 0; -my @loop_budget = (); +my $user = GetMember( 'borrowernumber' => $loggedinuser ); +my $branchname = GetBranchName($user->{branchcode}); -# --------------------------------------------------- -# currencies -my $cur; -my $active_currency = GetCurrency; -my $num; +my $num_formatter; my $cur_format = C4::Context->preference("CurrencyFormat"); if ( $cur_format eq 'FR' ) { - $num = new Number::Format( + $num_formatter = Number::Format->new( 'decimal_fill' => '2', 'decimal_point' => ',', 'int_curr_symbol' => '', @@ -97,93 +66,72 @@ if ( $cur_format eq 'FR' ) { 'thousands_sep' => ' ', 'mon_decimal_point' => ',' ); -} else { # US by default.. - $num = new Number::Format( +} else { # US by default.. + $num_formatter = Number::Format->new( 'int_curr_symbol' => '', 'mon_thousands_sep' => ',', 'mon_decimal_point' => '.' ); } -# suggestions -my $status = $query->param('status') || "ASKED"; -my $suggestion = CountSuggestion($status); -my $suggestions_loop = &SearchSuggestion( {STATUS=> $status} ); -# --------------------------------------------------- -# number format -my $period = GetBudgetPeriod; -my $budget_period_id = $period->{budget_period_id}; -my $budget_branchcode = $period->{budget_branchcode}; -my $moo = GetBudgetHierarchy('',$homebranch, $template->{param_map}->{'USER_INFO'}[0]->{'borrowernumber'} ); -@results = @$moo; -my $period_total = 0; -my $toggle = 0; -my @loop; - -foreach my $result (@results) { - # only get top-level budgets for display - # warn $result->{'budget_branchcode'}; - - $period_total += $result->{'budget_amount'}; - - my $a = $result->{'budget_code_indent'}; - $a =~ s/\ /\ \;/g; - $result->{'budget_code_indent'} = $a; - - my $r = GetBranchName( $result->{'budget_owner_id'} ); - $result->{'budget_branchname'} = GetBranchName( $result->{'budget_branchcode'} ); - - my $member = GetMember( borrowernumber => $result->{budget_owner_id} ); - my $member_full = $member->{'firstname'} . ' ' . $member->{'surname'} if $member; - # as we are going to treat these as numbers let's ensure they are not NULL - if (!defined $result->{budget_amount} ) { - $result->{budget_amount} = 0; - } - if (!defined $result->{budget_spent} ) { - $result->{budget_spent} = 0; - } - if (!defined $result->{budget_ordered} ) { - $result->{budget_ordered} = 0; - } +my $budget_arr = + GetBudgetHierarchy( '', $user->{branchcode}, + $template->{param_map}->{'USER_INFO'}[0]->{'borrowernumber'} ); - $result->{'budget_owner'} = $member_full; - $result->{'budget_ordered'} = GetBudgetOrdered( $result->{'budget_id'} ); - $result->{'budget_spent'} = GetBudgetSpent( $result->{'budget_id'} ); - $result->{'budget_avail'} = $result->{'budget_amount'} - $result->{'budget_spent'} - $result->{'budget_ordered'}; +my $total = 0; +my $totspent = 0; +my $totordered = 0; +my $totcomtd = 0; +my $totavail = 0; - $total += $result->{'budget_amount'}; - $totspent += $result->{'budget_spent'}; - $totordered += $result->{'budget_ordered'}; - $totavail += $result->{'budget_avail'}; +foreach my $budget ( @{$budget_arr} ) { - $result->{'budget_amount'} = $num->format_price( $result->{'budget_amount'} ); - $result->{'budget_spent'} = $num->format_price( $result->{'budget_spent'} ); - $result->{'budget_ordered'} = $num->format_price( $result->{'budget_ordered'} ); - $result->{'budget_avail'} = $num->format_price( $result->{'budget_avail'} ); + $budget->{budget_code_indent} =~ s/\ /\ \;/g; - # my $spent_percent = ( $result->{'budget_spent'} / $result->{'budget_amount'} ) * 100; - # $result->{'budget_spent_percent'} = sprintf( "%00d", $spent_percent ); + $budget->{'budget_branchname'} = + GetBranchName( $budget->{'budget_branchcode'} ); + my $member = GetMember( borrowernumber => $budget->{budget_owner_id} ); if ($member) { - $result->{budget_owner_name} = $member->{'firstname'} . ' ' . $member->{'surname'}; + $budget->{budget_owner} = + $member->{'firstname'} . ' ' . $member->{'surname'}; + } + + if ( !defined $budget->{budget_amount} ) { + $budget->{budget_amount} = 0; } - push( @loop_budget, { %{$result}, toggle => $toggle++ % 2, } ); + $budget->{'budget_ordered'} = GetBudgetOrdered( $budget->{'budget_id'} ); + $budget->{'budget_spent'} = GetBudgetSpent( $budget->{'budget_id'} ); + if ( !defined $budget->{budget_spent} ) { + $budget->{budget_spent} = 0; + } + if ( !defined $budget->{budget_ordered} ) { + $budget->{budget_ordered} = 0; + } + $budget->{'budget_avail'} = + $budget->{'budget_amount'} - ( $budget->{'budget_spent'} + $budget->{'budget_ordered'} ); + + $total += $budget->{'budget_amount'}; + $totspent += $budget->{'budget_spent'}; + $totordered += $budget->{'budget_ordered'}; + $totavail += $budget->{'budget_avail'}; + + for my $field (qw( budget_amount budget_spent budget_ordered budget_avail ) ) { + $budget->{$field} = $num_formatter->format_price( $budget->{$field} ); + } } $template->param( - classlist => $classlist, + type => 'intranet', - loop_budget => \@loop_budget, - active_symbol => $active_currency->{'symbol'}, + loop_budget => $budget_arr, branchname => $branchname, - budget => $period->{budget_name}, - total => $num->format_price( $total ), - totspent => $num->format_price( $totspent ), - totordered => $num->format_price( $totordered ), - totcomtd => $num->format_price( $totcomtd ), - totavail => $num->format_price( $totavail ), - suggestion => $suggestion, + total => $num_formatter->format_price($total), + totspent => $num_formatter->format_price($totspent), + totordered => $num_formatter->format_price($totordered), + totcomtd => $num_formatter->format_price($totcomtd), + totavail => $num_formatter->format_price($totavail), ); output_html_with_http_headers $query, $cookie, $template->output; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tmpl index 932cefc..c582679 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tmpl @@ -82,10 +82,10 @@ - - - + + + -- 1.6.6.1