X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Facqui-home.pl;h=804e3ce0629b11fed816ea12fad645577197b807;hb=b27da7e0ce25c806612743100609255ace48257c;hp=30cc75fce4f864e704046c5f663e200ff456282c;hpb=5e44e797eb9e685339971f17f1b76291b3b32c38;p=srvgit diff --git a/acqui/acqui-home.pl b/acqui/acqui-home.pl index 30cc75fce4..804e3ce062 100755 --- a/acqui/acqui-home.pl +++ b/acqui/acqui-home.pl @@ -1,69 +1,140 @@ #!/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 3 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, see . + +=head1 NAME + +acqui-home.pl + +=head1 DESCRIPTION + +this script is the main page for acqui + +=cut + use strict; -use CGI; +use warnings; + +use CGI qw ( -utf8 ); 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; +use Koha::Acquisition::Currencies; -my $query = new CGI; -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "acqui/acqui-home.tmpl", - query => $query, - type => "intranet", - authnotrequired => 0, - flagsrequired => {acquisition => 1}, - debug => 1, - }); - -# budget -my ($count,@results)=bookfunds; -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; -} -#currencies -my ($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 $query = CGI->new; +my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user( + { template_name => 'acqui/acqui-home.tt', + query => $query, + type => 'intranet', + authnotrequired => 0, + flagsrequired => { acquisition => '*' }, + debug => 1, + } +); + +my $user = GetMember( 'borrowernumber' => $loggedinuser ); +my $branchname = GetBranchName($user->{branchcode}); + +my $status = $query->param('status') || "ASKED"; +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_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'}; + } + + push @budget_loop, $budget; } -# 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); +$template->param( + type => 'intranet', + loop_budget => \@budget_loop, + branchname => $branchname, + total => $total, + totspent => $totspent, + totordered => $totordered, + totcomtd => $totcomtd, + totavail => $totavail, + total_active => $total_active, + totspent_active => $totspent_active, + totordered_active => $totordered_active, + totavail_active => $totavail_active, + suggestions_count => $suggestions_count, +); + +my $cur = Koha::Acquisition::Currencies->get_active; +if ( $cur ) { + $template->param( + currency => $cur->currency, + ); +} output_html_with_http_headers $query, $cookie, $template->output;