X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Facqui-home.pl;h=69482a819e985bac78cabfe4c35905bd3d87582d;hb=HEAD;hp=ae36ad5cd38a3f14b11cb9e5f77c179c232be572;hpb=9d1c8fa9d2815fa5651dbe264699caed65eea853;p=koha_gimpoz diff --git a/acqui/acqui-home.pl b/acqui/acqui-home.pl index ae36ad5cd3..69482a819e 100755 --- a/acqui/acqui-home.pl +++ b/acqui/acqui-home.pl @@ -1,91 +1,157 @@ #!/usr/bin/perl +# Copyright 2008 - 2009 BibLibre SARL +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# 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 + +=cut + use strict; +use warnings; +use Number::Format; + use CGI; use C4::Auth; use C4::Output; -use C4::Interface::CGI::Output; -use C4::Database; -use C4::Suggestions; -use HTML::Template; use C4::Acquisition; +use C4::Budgets; +use C4::Members; +use C4::Branch; +use C4::Debug; +use C4::Suggestions; -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 => 1 }, + flagsrequired => { acquisition => '*' }, debug => 1, } ); -# budget -my $dbh = C4::Context->dbh; -my $sthtemp = - $dbh->prepare( - "Select flags, branchcode from borrowers where borrowernumber = ?"); -$sthtemp->execute($loggedinuser); -my ( $flags, $homebranch ) = $sthtemp->fetchrow; - -my ( $count, @results ) = bookfunds($homebranch); -my $classlist = ''; -my $total = 0; -my $totspent = 0; -my $totcomtd = 0; -my $totavail = 0; -my @loop_budget = (); -for ( my $i = 0 ; $i < $count ; $i++ ) { - - if ( $toggle eq 0 ) { - $toggle = 1; +my $user = GetMember( 'borrowernumber' => $loggedinuser ); +my $branchname = GetBranchName($user->{branchcode}); + + +my $num_formatter; + +my $cur_format = C4::Context->preference("CurrencyFormat"); +if ( $cur_format eq 'FR' ) { + $num_formatter = Number::Format->new( + 'decimal_fill' => '2', + 'decimal_point' => ',', + 'int_curr_symbol' => '', + 'mon_thousands_sep' => ' ', + 'thousands_sep' => ' ', + 'mon_decimal_point' => ',' + ); +} else { # US by default.. + $num_formatter = Number::Format->new( + 'int_curr_symbol' => '', + 'mon_thousands_sep' => ',', + 'mon_decimal_point' => '.' + ); +} + +my $status = $query->param('status') || "ASKED"; +my $suggestions_count = CountSuggestion($status); + +my $budget_arr = + GetBudgetHierarchy( '', $user->{branchcode}, + $template->{VARS}->{'USER_INFO'}[0]->{'borrowernumber'} ); + +my $total = 0; +my $totspent = 0; +my $totordered = 0; +my $totcomtd = 0; +my $totavail = 0; + +my $total_active = 0; +my $totspent_active = 0; +my $totordered_active = 0; +my $totavail_active = 0; + +foreach my $budget ( @{$budget_arr} ) { + + $budget->{budget_code_indent} =~ s/\ /\ \;/g; + + $budget->{'budget_branchname'} = + GetBranchName( $budget->{'budget_branchcode'} ); + + my $member = GetMember( borrowernumber => $budget->{budget_owner_id} ); + if ($member) { + $budget->{budget_owner} = + $member->{'firstname'} . ' ' . $member->{'surname'}; } - else { - $toggle = 0; + + if ( !defined $budget->{budget_amount} ) { + $budget->{budget_amount} = 0; } - my ( $spent, $comtd ) = bookfundbreakdown( $results[$i]->{'bookfundid'} ); - my $avail = $results[$i]->{'budgetamount'} - ( $spent + $comtd ); - my %line; - - $line{bookfundname} = $results[$i]->{'bookfundname'}; - $line{budgetamount} = $results[$i]->{'budgetamount'}; - $line{spent} = sprintf( "%.2f", $spent ); - $line{comtd} = sprintf( "%.2f", $comtd ); - $line{avail} = sprintf( "%.2f", $avail ); - $line{'toggle'} = $toggle; - push @loop_budget, \%line; - $total += $results[$i]->{'budgetamount'}; - $totspent += $spent; - $totcomtd += $comtd; - $totavail += $avail; -} -#currencies -my $rates; -( $count, $rates ) = getcurrencies(); -my @loop_currency = (); -for ( my $i = 0 ; $i < $count ; $i++ ) { - my %line; - $line{currency} = $rates->[$i]->{'currency'}; - $line{rate} = $rates->[$i]->{'rate'}; - push @loop_currency, \%line; + $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'}; + + if ($budget->{budget_period_active}){ + $total_active += $budget->{'budget_amount'}; + $totspent_active += $budget->{'budget_spent'}; + $totordered_active += $budget->{'budget_ordered'}; + $totavail_active += $budget->{'budget_avail'}; + } + + for my $field (qw( budget_amount budget_spent budget_ordered budget_avail ) ) { + $budget->{$field} = $num_formatter->format_price( $budget->{$field} ); + } } -# suggestions ? -my $suggestion = countsuggestion("ASKED"); $template->param( - classlist => $classlist, type => 'intranet', - loop_budget => \@loop_budget, - loop_currency => \@loop_currency, - total => sprintf( "%.2f", $total ), - suggestion => $suggestion, - totspent => sprintf( "%.2f", $totspent ), - totcomtd => sprintf( "%.2f", $totcomtd ), - totavail => sprintf( "%.2f", $totavail ), - nobudget => $#results == -1 ? 1 : 0 + loop_budget => $budget_arr, + branchname => $branchname, + 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), + total_active => $num_formatter->format_price($total_active), + totspent_active => $num_formatter->format_price($totspent_active), + totordered_active => $num_formatter->format_price($totordered_active), + totavail_active => $num_formatter->format_price($totavail_active), + suggestions_count => $suggestions_count, ); output_html_with_http_headers $query, $cookie, $template->output;