X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Facqui-home.pl;h=5688452cfd49ba308ac698380826b5e1fb036c0e;hb=87ab820a20e1ef935d4d29c6fed313e9723fcb64;hp=2820c595d53a9c0fe6567a637a924c7233c422a0;hpb=b4ce3dbfb7ead3bcf06d9286bb83fcd7a6e35624;p=koha_fer diff --git a/acqui/acqui-home.pl b/acqui/acqui-home.pl index 2820c595d5..5688452cfd 100755 --- a/acqui/acqui-home.pl +++ b/acqui/acqui-home.pl @@ -1,86 +1,160 @@ #!/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 ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { - template_name => "acqui/acqui-home.tmpl", +my $query = CGI->new; +my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user( + { 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++){ - 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); - push @loop_budget, \%line; - $total+=$results[$i]->{'budgetamount'}; - $totspent+=$spent; - $totcomtd+=$comtd; - $totavail+=$avail; -} +my $user = GetMember( 'borrowernumber' => $loggedinuser ); +my $branchname = GetBranchName($user->{branchcode}); + + +my $num_formatter; -#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; +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' => '.' + ); } -# suggestions ? my $status = $query->param('status') || "ASKED"; -my $suggestion = countsuggestion($status); -my $suggestions_loop = &searchsuggestion( '', '', '', '', $status, '' ); +my $suggestions_count = CountSuggestion($status); + +my $budget_arr = GetBudgetHierarchy; + +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; + +my @budget_loop; +foreach my $budget ( @{$budget_arr} ) { + next unless (CanUserUseBudget($loggedinuser, $budget, $userflags)); + + $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_firstname} = $member->{'firstname'}; + $budget->{budget_owner_surname} = $member->{'surname'}; + $budget->{budget_owner_borrowernumber} = $member->{'borrowernumber'}; + } + + if ( !defined $budget->{budget_amount} ) { + $budget->{budget_amount} = 0; + } + + $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} ); + } + + push @budget_loop, $budget; +} $template->param( - classlist => $classlist, - type => 'intranet', - loop_budget => \@loop_budget, - loop_currency => \@loop_currency, - total => sprintf( "%.2f", $total ), - suggestion => $suggestion, - suggestions_loop => $suggestions_loop, - totspent => sprintf( "%.2f", $totspent ), - totcomtd => sprintf( "%.2f", $totcomtd ), - totavail => sprintf( "%.2f", $totavail ), - nobudget => $#results == -1 ? 1 : 0 + type => 'intranet', + loop_budget => \@budget_loop, + 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;